Categories
2026
PerlとMooでウイスキーのテイスティングノート自動生成システムを作ってみよう

Perlで作るタイムトラベル冒険ゲーム - 3つのデザインパターンで学ぶ実践的設計

Perlで作るウイスキーテイスティング・ノート〜3つの「間に入る」パターンで設計を手で覚える

PerlとMooで秘密のメッセンジャーを作ろう 〜Observer・Decorator・Commandパターンで暗号通信ツールを構築

Perlで作るASCIIアート・フォントレンダラー(Singleton × Flyweight × Proxy)

PerlとMooでWebページ変更ハンターを作ろう

Perlで作るダンジョンマスター〜3つのデザインパターンで生成・実行・調整を手で覚える

Perlで執事Bot〜4つのデザインパターンで作るコマンド帝国

一歩先のオブジェクト指向:PerlでOOPとFPを融合した「ハイブリッド設計」のすすめ

PerlとMooでPixelアートエディタを作ろう - Memento+Commandパターンで無限Undo/Redo
【目次】PerlでSlackボット指令センターを作る(全9回)

第9回:完成!Slack指令センター【PerlでSlackボット指令センターを作る】

第8回:権限制御とエラーハンドリング【PerlでSlackボット指令センターを作る】

第7回:複数パターンの協調動作【PerlでSlackボット指令センターを作る】

第6回:実行結果を通知したい【PerlでSlackボット指令センターを作る】

第5回:コマンド振り分けを一元化したい【PerlでSlackボット指令センターを作る】

第4回:コマンドをオブジェクトにしよう【PerlでSlackボット指令センターを作る】

第3回:コマンド追加でif地獄に【PerlでSlackボット指令センターを作る】

第2回:コマンドを実行したい【PerlでSlackボット指令センターを作る】

第1回:まずはSlackメッセージを受け取ろう【PerlでSlackボット指令センターを作る】

【目次】PerlとMooでテキストRPG戦闘エンジンを作ろう(全10回)

【第10回】パターンの組み合わせ方を学ぶ - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第9回】完成!テキストRPG戦闘エンジン - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第8回】複数パターンの協調動作 - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第7回】HP変化を画面に通知したい - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第6回】敵のAIを切り替えたい - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第5回】戦闘フェーズを管理したい - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第4回】行動をコマンドにしよう - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第3回】if/elseで行動を振り分けると破綻 - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第2回】行動の種類を増やしたい - PerlとMooでテキストRPG戦闘エンジンを作ろう

【第1回】まずは殴り合いから - PerlとMooでテキストRPG戦闘エンジンを作ろう

【目次】Perl API統合パターン(全8回)

第8回-デザインパターン総まとめ - SOLID原則とAPI統合

第7回-Perl例外処理とNull Object - エラーを優雅に扱う

第6回-APIキャッシュ戦略 - Cache::LRUとTTL

第5回-Facadeパターン実装 - 窓口の一本化

第4回-API統合の設計課題 - Adapterパターンの限界

第3回-Adapterパターン実装 - インターフェースの統一

第2回-複数API統合の課題 - 2つ目のAPIで破綻する

第1回-PerlでHTTP API入門 - 最初の一歩は簡単だった

【目次】Perlで作るファイルバックアップツール(全8回)

振り返りと発展 - バックアップツール開発の総括

ログとエラーハンドリングによる堅牢化

圧縮機能の追加 - 新しい戦略をプラグインする

2パターンの協調動作 - Template Method × Strategy

Strategyパターンで複数のバックアップ戦略を切り替える

Template Methodで処理フローを整理する骨格

タイムスタンプ比較で差分検出

シンプルなバックアップから始める

【目次】Perl/Mooでテキスト処理パイプライン(全6回)

拡張性の極み:プラグイン機構 - Perl/Mooでテキスト処理パイプライン

実践:ApacheログからTop 10 URLを抽出 - Perl/Mooでテキスト処理パイプライン

集約処理:行数カウント・統計情報 - Perl/Mooでテキスト処理パイプライン

動的な組み立て:パイプラインビルダー - Perl/Mooでテキスト処理パイプライン

処理を重ねる:Decoratorで機能を追加 - Perl/Mooでテキスト処理パイプライン

【入門】パイプラインの基礎とフィルター実装 - Perl/Mooでテキスト処理パイプライン

【目次】PerlとMooで航空管制シミュレーターを作ろう(全8回)

第8回-これがMediatorパターンだ! - PerlとMooで航空管制シミュレーターを作ろう

第7回-緊急事態! - PerlとMooで航空管制シミュレーターを作ろう

第6回-順番待ちキュー - PerlとMooで航空管制シミュレーターを作ろう

第5回-滑走路を管理しよう - PerlとMooで航空管制シミュレーターを作ろう

第4回-共通の約束を決める - PerlとMooで航空管制シミュレーターを作ろう

第3回-管制塔を作ろう - PerlとMooで航空管制シミュレーターを作ろう

第2回-2機が同時に着陸したい - PerlとMooで航空管制シミュレーターを作ろう

第1回-飛行機を飛ばそう - PerlとMooで航空管制シミュレーターを作ろう

【目次】PerlとMooでダイス言語を作ってみよう(全8回)

第8回-これがInterpreterパターンだ! - PerlとMooでダイス言語を作ってみよう

第7回-完成!ダイス言語インタプリタ - PerlとMooでダイス言語を作ってみよう

第6回-掛け算・引き算も追加(OCP) - PerlとMooでダイス言語を作ってみよう

第5回-すべての式に共通ルールを - PerlとMooでダイス言語を作ってみよう

第4回-足し算クラスを作る - PerlとMooでダイス言語を作ってみよう

第3回-数値とダイスをオブジェクトに - PerlとMooでダイス言語を作ってみよう

第2回-計算式が複雑になると破綻 - PerlとMooでダイス言語を作ってみよう

第1回-ダイスを振ろう - PerlとMooでダイス言語を作ってみよう

【目次】PerlとMooでドキュメント変換ツールを作ってみよう(全8回)

第8回-これがVisitorパターンだ! - PerlとMooでドキュメント変換ツールを作ってみよう

第7回-単語数カウントとリンク抽出を追加しよう - PerlとMooでドキュメント変換ツールを作ってみよう

第6回-プレーンテキスト変換を追加してみよう - PerlとMooでドキュメント変換ツールを作ってみよう

第5回-要素が自分の変換方法を決める? - PerlとMooでドキュメント変換ツールを作ってみよう

第4回-変換処理を別クラスに分けよう - PerlとMooでドキュメント変換ツールを作ってみよう

第3回-HTML変換を追加したい!if/elseの限界 - PerlとMooでドキュメント変換ツールを作ってみよう

第2回-見出しやコードブロックも表現しよう - PerlとMooでドキュメント変換ツールを作ってみよう

第1回-Markdownを読み込むツールを作ろう - PerlとMooでドキュメント変換ツールを作ってみよう

【目次】PerlとMooで作るランダムダンジョンジェネレーター(全7回)

Bridgeパターンの設計を振り返る - Perl GoFパターン実践まとめ【第7回】

部屋区分型アルゴリズムを簡単追加 - Perlダンジョン生成の拡張性【第6回】

新テーマを1クラスで追加 - Perl拡張性とOpen/Closed原則の実践【第5回】

アルゴリズムとテーマを分離する - Perl Bridgeパターンによる設計改善【第4回】

テーマを変えたらクラスが爆発 - Perlアンチパターンとクラス設計の落とし穴【第3回】

迷路型アルゴリズムを追加する - Perlダンジョン生成の拡張【第2回】

最初のダンジョンを生成しよう - PerlとMooでダンジョンジェネレーター入門【第1回】

【目次】Perlで作る注文フローの国別キット(全8回)

返品フロー追加で見えた限界 - Abstract Factoryの適用判断

EU市場追加でOCPを確認 - 既存コードを変更せずに拡張

OrderProcessorを抽象に寄せる - DIで実現する柔軟性

国内/海外Factoryを実装する - 製品ファミリの完成

国別Factoryで一貫性を保つ - Abstract Factory導入

組み合わせミスで起きる業務事故 - 製品ファミリの不一致

海外対応で分岐だらけに - if/else地獄の始まり

国内注文処理の実装 - 決済・配送・通知の基本

【目次】PerlとMooで弾幕シューティングを作ってみよう(全6回)

【第6回】これがFlyweightパターンだ!

【第5回】完成!弾幕シューティングエンジン

【第4回】外部状態を渡して弾幕を描こう

【第3回】BulletFactoryで弾を使い回そう

【第2回】弾の種類と位置を分けて考えよう

【第1回】弾を1000発撃ちたい!メモリの限界

【目次】PerlとMooで学ぶComposite - Markdown目次生成ツリー構造(全8回)

第8回-リンク自動生成とアンカーID付与(完成) - PerlとMooで学ぶComposite

第7回-HTML/JSON形式で目次を出力しよう - PerlとMooで学ぶComposite

第6回-パーサーでツリーを自動構築しよう - PerlとMooで学ぶComposite

第5回-Compositeパターンでツリー構造を作ろう - PerlとMooで学ぶComposite

第4回-階層構造を表現しようとして壁にぶつかる - PerlとMooで学ぶComposite

第3回-フラット配列で目次を表示しよう - PerlとMooで学ぶComposite

第2回-正規表現で見出しを抽出しよう - PerlとMooで学ぶComposite

第1回-Markdownファイルを読み込んでみよう - PerlとMooで学ぶComposite

【目次】PerlとMooで作るSQLクエリビルダー(全8回)

第8回 - バリデーションとテストで完成(Perl SQLクエリビルダー)

第7回 - Directorパターンで定型クエリを再利用(Perl)

第6回 - JOINとORDER BYで複雑なクエリを構築(Perl SQL)

第5回 - プレースホルダーで安全なSQL(Perl セキュリティ)

第4回 - Builderパターンで優雅に解決(Perl デザインパターン)

第3回 - SQLインジェクション実験(Perl セキュリティ入門)

第2回 - WHERE条件とパラメータ地獄(Perl SQLクエリビルダー)

第1回 - 最小のSELECTクエリを作ろう(Perl SQLクエリビルダー入門)

【目次】PerlとMooで学ぶDecorator - ログ解析パイプライン実装(全8回)

第8回-設定ファイルでパイプラインを組み立てよう(完成) - PerlとMooで学ぶDecorator

第7回-アラート通知Decoratorを追加しよう - PerlとMooで学ぶDecorator

第6回-統計集計Decoratorを追加しよう - PerlとMooで学ぶDecorator

第5回-Decoratorパターンで柔軟に機能追加しよう - PerlとMooで学ぶDecorator

第4回-404エラーを検出しよう(継承の限界) - PerlとMooで学ぶDecorator

第3回-IPアドレスでフィルタリングしよう - PerlとMooで学ぶDecorator

第2回-正規表現でログをパースしよう - PerlとMooで学ぶDecorator

第1回-ログを1行ずつ読み込んでみよう - PerlとMooで学ぶDecorator

【目次】PerlとMooでWebスクレイパーを作ってみよう(全10回)

第10回-これがTemplate Methodパターンだ! - PerlとMooでWebスクレイパーを作ってみよう

第9回-完成!Webスクレイパー - PerlとMooでWebスクレイパーを作ってみよう

第8回-新しいサイトを追加しよう - PerlとMooでWebスクレイパーを作ってみよう

第7回-データ検証をフックで追加しよう - PerlとMooでWebスクレイパーを作ってみよう

第6回-デフォルトの保存処理を用意しよう - PerlとMooでWebスクレイパーを作ってみよう

第5回-サイトごとのスクレイパーを作ろう - PerlとMooでWebスクレイパーを作ってみよう

第4回-基底クラスで処理の流れを定義しよう - PerlとMooでWebスクレイパーを作ってみよう

第3回-共通の処理手順を洗い出そう - PerlとMooでWebスクレイパーを作ってみよう

第2回-天気予報サイトも取得したい!コピペの限界 - PerlとMooでWebスクレイパーを作ってみよう

第1回-ニュースサイトから見出しを取得しよう - PerlとMooでWebスクレイパーを作ってみよう

【目次】Perlでハニーポット侵入レーダーを作ろう(全10回)

第10回-これがObserverパターンだ! - Perlでハニーポット侵入レーダーを作ろう

第9回-完成!侵入レーダー司令室 - Perlでハニーポット侵入レーダーを作ろう

第8回-脅威スコアを拡張せよ(OCP) - Perlでハニーポット侵入レーダーを作ろう

第7回-偽物Observerを排除 - Perlでハニーポット侵入レーダーを作ろう

第6回-監視ON/OFFを切り替える - Perlでハニーポット侵入レーダーを作ろう

第5回-侵入司令塔を作る - Perlでハニーポット侵入レーダーを作ろう

第4回-通知ルールを契約化 - Perlでハニーポット侵入レーダーを作ろう

第3回-通知係を分離しよう - Perlでハニーポット侵入レーダーを作ろう

第2回-通知先が増えたら地獄 - Perlでハニーポット侵入レーダーを作ろう

第1回-侵入ログを光らせろ - Perlでハニーポット侵入レーダーを作ろう

【目次】Mooで作るゴーストギャラリー・ビューワ(全5回)

第5回-遠隔アーカイブへ引っ越し - Mooで作るゴーストギャラリー・ビューワ

第4回-誰が覗いたか記録せよ - Mooで作るゴーストギャラリー・ビューワ

第3回-何度も見るなら貯めたい - Mooで作るゴーストギャラリー・ビューワ

第2回-呪いの絵は誰でも見ていい? - Mooで作るゴーストギャラリー・ビューワ

第1回-高解像度で画面が固まる - Mooで作るゴーストギャラリー・ビューワ

【目次】PerlとMooでAPIレスポンスシミュレーターを作ってみよう(全8回)

これがFactory Methodパターンだ!

レート制限シナリオを追加しよう

共通の送信フローを集約しよう

生成処理をオーバーライドしよう

レスポンスの共通ルールを決めよう

シナリオ別の生成クラスに分けよう

エラーも返したい!if/elseの限界

偽APIの最小レスポンスを作ろう

【目次】PerlとMooでモンスター軍団を量産してみよう(全6回)

第6回-これがPrototypeパターンだ! - mass-producing-monsters

第5回-Storable::dclone()で深いコピー! - mass-producing-monsters

第4回-浅いコピーの罠!装備を持ったモンスターで問題発生 - mass-producing-monsters

第3回-clone()で色違いモンスターを量産しよう - mass-producing-monsters

第2回-MooX::Cloneでモンスターを量産しよう - mass-producing-monsters

第1回-モンスターを量産したい!new()の限界 - mass-producing-monsters

【目次】Perlでローグライク通知システムを作ろう(全10回)

第10回-これがObserverパターンだ! - Perlでローグライク通知システムを作ろう

第9回-完成!ローグライク通知システム - Perlでローグライク通知システムを作ろう

第8回-統計システムを追加しよう(OCP実践) - Perlでローグライク通知システムを作ろう

第7回-型チェックでバグを防ごう - Perlでローグライク通知システムを作ろう

第6回-Observerを動的に追加・削除しよう - Perlでローグライク通知システムを作ろう

第5回-イベント発生元を管理しよう - Perlでローグライク通知システムを作ろう

第4回-通知を受け取る約束を決めよう - Perlでローグライク通知システムを作ろう

第3回-通知を受け取るクラスを作ろう - Perlでローグライク通知システムを作ろう

第2回-実績システムも追加したい! - Perlでローグライク通知システムを作ろう

第1回-ダンジョン探索ログを作ろう - Perlでローグライク通知システムを作ろう

【目次】Perlで作るブルートフォース攻撃シミュレータ(全5回)

攻撃ツール完成 - Iteratorパターンという武器

辞書攻撃もしたい - 攻撃手法の切り替え

組み合わせ生成機を作る - Mooでループをオブジェクトにする

4桁、5桁...ループが止まらない - 多重ループの絶望

Perlでパスワードクラッカーを作ろう - 3桁の秘密

【目次】Mooを使ってゲームのセーブ機能を作ってみよう(全10回)

第10回-これがMementoパターンだ! - Mooを使ってゲームのセーブ機能を作ってみよう

第9回-完成!セーブ機能付きRPG - Mooを使ってゲームのセーブ機能を作ってみよう

第8回-セーブスロットを増やそう - Mooを使ってゲームのセーブ機能を作ってみよう

第7回-セーブデータを守ろう(カプセル化) - Mooを使ってゲームのセーブ機能を作ってみよう

第6回-オートセーブを追加しよう - Mooを使ってゲームのセーブ機能を作ってみよう

第5回-セーブデータを管理しよう(履歴機能) - Mooを使ってゲームのセーブ機能を作ってみよう

第4回-保存した状態から復元しよう - Mooを使ってゲームのセーブ機能を作ってみよう

第3回-状態をまとめて保存しよう(スナップショット) - Mooを使ってゲームのセーブ機能を作ってみよう

第2回-ゲームオーバーで最初から?状態保存の必要性 - Mooを使ってゲームのセーブ機能を作ってみよう

第1回-シンプルなRPGを作ろう - Mooを使ってゲームのセーブ機能を作ってみよう

【目次】PerlとMooでレポートジェネレーターを作ってみよう(全10回)

第10回-最終回-これがFactory Methodパターンだ! - PerlとMooでレポートジェネレーターを作ってみよう

第9回-完成!レポートジェネレーター - PerlとMooでレポートジェネレーターを作ってみよう

第8回-新しいレポート種別を追加しよう - PerlとMooでレポートジェネレーターを作ってみよう

第7回-レポートの型を保証しよう - PerlとMooでレポートジェネレーターを作ってみよう

第6回-基底クラスで共通処理をまとめよう - PerlとMooでレポートジェネレーターを作ってみよう

第5回-生成処理をオーバーライドしよう - PerlとMooでレポートジェネレーターを作ってみよう

第4回-ジェネレーターを種別ごとに分けよう - PerlとMooでレポートジェネレーターを作ってみよう

第3回-レポートの共通ルールを決めよう - PerlとMooでレポートジェネレーターを作ってみよう

第2回-週次レポートも生成したい! - PerlとMooでレポートジェネレーターを作ってみよう

第1回-レポートを生成するクラスを作ろう - PerlとMooでレポートジェネレーターを作ってみよう

【目次】架空ECサイトで学ぶ決済審査システム(全3回)

第3回-審査ロジックをチェッカーに分離する

第2回-審査条件が増えてコードが複雑化する

第1回-架空ECサイトの決済審査を作ってみる

【目次】Mooを使って自動販売機シミュレーターを作ってみよう(全10回)

第10回-これがStateパターンだ! - Mooを使って自動販売機シミュレーターを作ってみよう

第9回-完成!自動販売機シミュレーター - Mooを使って自動販売機シミュレーターを作ってみよう

第8回-売り切れ状態を追加しよう(OCP実践) - Mooを使って自動販売機シミュレーターを作ってみよう

第7回-does制約で型チェックしよう - Mooを使って自動販売機シミュレーターを作ってみよう

第6回-状態の中から次の状態へ遷移しよう - Mooを使って自動販売機シミュレーターを作ってみよう

第5回-状態を管理するContextクラスを作ろう - Mooを使って自動販売機シミュレーターを作ってみよう

第4回-Moo::Roleで共通の約束を決めよう - Mooを使って自動販売機シミュレーターを作ってみよう

第3回-状態ごとに専用クラスを作ろう - Mooを使って自動販売機シミュレーターを作ってみよう

第2回-状態を増やすと大変!条件分岐の悩み - Mooを使って自動販売機シミュレーターを作ってみよう

第1回-自動販売機の状態をif/elseで管理しよう - Mooを使って自動販売機シミュレーターを作ってみよう

シリーズ目次: ユーザー登録バリデーションを学ぶ — シンプル検証から責任の連鎖へ

第3回-【Perl/Moo】バリデータをチェーンで連携 - Chain of Responsibilityパターン入門

第2回-【Perl】検証ルール追加でif文が複雑化 - バリデーションの課題

第1回-【Perl入門】シンプルなユーザー登録バリデーションを作る

【目次】Mooを使ってデータエクスポーターを作ってみよう(全10回)

第10回-これがStrategyパターンだ! - Mooを使ってデータエクスポーターを作ってみよう

第9回-完成!データエクスポーター - Mooを使ってデータエクスポーターを作ってみよう

第8回-形式名から自動でエクスポーターを選ぼう - Mooを使ってデータエクスポーターを作ってみよう

第7回-isaでバグを防ごう - Mooを使ってデータエクスポーターを作ってみよう

第6回-実行時に出力形式を切り替えよう - Mooを使ってデータエクスポーターを作ってみよう

第5回-エクスポーターを管理するクラスを作ろう - Mooを使ってデータエクスポーターを作ってみよう

第4回-Moo::Roleで共通の約束を決めよう - Mooを使ってデータエクスポーターを作ってみよう

第3回-出力処理を専用クラスに分けよう - Mooを使ってデータエクスポーターを作ってみよう

第2回-新しい形式を追加すると大変!条件分岐の悩み - Mooを使ってデータエクスポーターを作ってみよう

第1回-CSVとJSONでデータを保存しよう - Mooを使ってデータエクスポーターを作ってみよう

Mooで作る簡易テキストエディタ - 目次(全10回)

第10回-これがデザインパターンだ! - Mooで作る簡易テキストエディタ

第9回-完成!簡易エディタ - 統合と仕上げ - Mooで作る簡易テキストエディタ

第8回-複数操作をまとめる - マクロ機能 - Mooで作る簡易テキストエディタ

第7回-やり直しもできる! - Redo機能 - Mooで作る簡易テキストエディタ

第6回-履歴を管理しよう - Historyクラス - Mooで作る簡易テキストエディタ

第5回-共通の約束を決める - ロールの活用 - Mooで作る簡易テキストエディタ

第4回-元に戻せるようにする - undoメソッド - Mooで作る簡易テキストエディタ

第3回-操作を記録しよう - 操作オブジェクト - Mooで作る簡易テキストエディタ

第2回-元に戻したい! - 履歴の必要性 - Mooで作る簡易テキストエディタ

第1回-簡易エディタを作ろう - テキストを編集する - Mooで作る簡易テキストエディタ

設定ファイルマネージャーを作ってみよう — シリーズ目次

第5回-これがSingletonパターンだ! — 設定ファイルマネージャーを作ってみよう

第4回-インスタンスを1つにしよう — 設定ファイルマネージャーを作ってみよう

第3回-複数の場所から設定を使おう — 設定ファイルマネージャーを作ってみよう

第2回-設定ファイルを読み込もう — 設定ファイルマネージャーを作ってみよう

第1回-設定を管理するクラスを作ろう — 設定ファイルマネージャーを作ってみよう

【目次】本棚アプリで覚える集合体の巡回(全5回)

Iteratorパターンという知恵 - 先人の経験をPerlで活かす

走査機能を取り出す - iterator()メソッドの実装

巡回の責任を分離する - Moo::Roleで専用クラスを作る

すべての本を表示したい - forループとカプセル化の壁

Mooで本棚アプリを作ろう - Perlで蔵書管理の第一歩

天気情報ツールで覚えるPerl - シリーズ目次

第5回-これがAdapterパターンだ! - 天気情報ツールで覚えるPerl

第4回-複数サービスを統一インターフェースで扱う設計 - 天気情報ツールで覚えるPerl

第3回-インターフェースを変換する橋渡しクラスの実装 - 天気情報ツールで覚えるPerl

第2回-異なるAPIを持つサービスを追加する方法 - 天気情報ツールで覚えるPerl

第1回-天気情報を表示するクラスを作ろう - 天気情報ツールで覚えるPerl

シリーズ目次:URL短縮サポーター(全12回)

第12回-完成!そして次へ — URL短縮サポーターを作ってみよう

第11回-変なURLは断ろう — URL短縮サポーターを作ってみよう

第10回-転送しよう! — URL短縮サポーターを作ってみよう

第9回-元のURLを探そう — URL短縮サポーターを作ってみよう

第8回-短縮URLへアクセス! — URL短縮サポーターを作ってみよう

第7回-URLを登録しよう — URL短縮サポーターを作ってみよう

第6回-データの住所を決めよう — URL短縮サポーターを作ってみよう

第5回-忘れないように保存しよう — URL短縮サポーターを作ってみよう

第4回-短くするには? — URL短縮サポーターを作ってみよう

第3回-入力を受け取ろう — URL短縮サポーターを作ってみよう

第2回-まずは入口を作ろう — URL短縮サポーターを作ってみよう

第1回-友人からの依頼 — URL短縮サポーターを作ってみよう

シリーズ目次:シンプルなTodo CLIアプリ(全10回)

演習|SQLiteで永続化を切り替えよう - シンプルなTodo CLIアプリ 第10回

完成したTodo CLIを振り返る - シンプルなTodo CLIアプリ 第9回

Getopt::Longで引数を整理する - シンプルなTodo CLIアプリ 第8回

コマンドを増やす|完了機能を追加 - シンプルなTodo CLIアプリ 第7回

if文地獄から脱出|Commandパターン導入 - シンプルなTodo CLIアプリ 第6回

テストしやすくする|InMemoryRepository - シンプルなTodo CLIアプリ 第5回

保存処理を分離する|Repository導入 - シンプルなTodo CLIアプリ 第4回

JSONファイルで永続化|データを保存しよう - シンプルなTodo CLIアプリ 第3回

タスクをクラスにする - シンプルなTodo CLIアプリ 第2回

まずは動くTodoアプリを作ろう|if文で始めるシンプル実装 - シンプルなTodo CLIアプリ 第1回

シリーズ目次:Mooを使ってディスパッチャーを作ってみよう(全12回)

第12回-これがデザインパターンだ! - Mooを使ってディスパッチャーを作ってみよう

第11回-完成!ディスパッチャー - Mooを使ってディスパッチャーを作ってみよう

第10回-URLで振り分けよう - Mooを使ってディスパッチャーを作ってみよう

第9回-自動で選ぶ仕組みを作ろう - Mooを使ってディスパッチャーを作ってみよう

第8回-ハンドラーを登録しよう - Mooを使ってディスパッチャーを作ってみよう

第7回-動的に切り替えよう - Mooを使ってディスパッチャーを作ってみよう

第6回-司令塔クラスを作ろう - Mooを使ってディスパッチャーを作ってみよう

第5回-共通の約束を決めよう - Mooを使ってディスパッチャーを作ってみよう

第4回-処理をクラスに分けよう - Mooを使ってディスパッチャーを作ってみよう

第3回-処理を変数に入れよう - Mooを使ってディスパッチャーを作ってみよう

第2回-ハッシュで振り分けよう - Mooを使ってディスパッチャーを作ってみよう

第1回-BBSに機能を追加しよう - Mooを使ってディスパッチャーを作ってみよう

シリーズ目次:Mooで覚えるオブジェクト指向プログラミング(全12回)

GitHub Copilot プレミアムリクエスト完全消費への挑戦|300リクエストを使い切れなかった理由と発見

2025
第12回-型チェックでバグを未然に防ぐ - Mooで覚えるオブジェクト指向プログラミング

第11回-「持っている」ものに仕事を任せる - Mooで覚えるオブジェクト指向プログラミング

第10回-継承しないで振る舞いを共有 - Mooで覚えるオブジェクト指向プログラミング

第9回-同じ名前で違う動作を - Mooで覚えるオブジェクト指向プログラミング

第8回-似ているクラスの重複をなくす - Mooで覚えるオブジェクト指向プログラミング

第7回-関連するデータを別のクラスに - Mooで覚えるオブジェクト指向プログラミング

第6回-内部実装を外から触らせない - Mooで覚えるオブジェクト指向プログラミング

第5回-初期化忘れを防ぐ - Mooで覚えるオブジェクト指向プログラミング

第4回-勝手に書き換えられないようにする - Mooで覚えるオブジェクト指向プログラミング

第3回-同じものを何度も作れるように - Mooで覚えるオブジェクト指向プログラミング

第2回-データとロジックをまとめよう - Mooで覚えるオブジェクト指向プログラミング

Perl イベント駆動プログラミング入門|Mojo::Log の on と emit で基礎から実践まで

GitHub Copilot Ask モードの真の使い方|リポジトリ調査で開発効率を劇的に向上

GitHub Copilot 使い分けガイド|118/300 リクエスト実測から学ぶ活用法

【目次】Perlで値オブジェクトを使ってテスト駆動開発してみよう(全5回)

値オブジェクトのエラー処理と境界値テスト — Perl×TDD(シリーズ完結)

JSON-RPC Request/Response実装 - 複合値オブジェクト設計【Perl×TDD】

Perl Advent Calendar 2025 完走!- 振り返りとこれから

Perlの歴史とコミュニティ - YAPC, Kansai.pm, そしてこれから

PerlのTest2でTDD実践 - 値オブジェクトのテスト戦略とRed-Green-Refactor完全ガイド

Perlでの設定ファイル管理 - Config::* モジュール

PerlでのWebスクレイピング - Web::Scraper と Mojo::UserAgent

JSON-RPC 2.0仕様から学ぶ値オブジェクト設計【Perl実装】仕様書の読み方とTDD

Perlでのコマンドライン引数処理 - Getopt::Long

なぜエージェント連携がうまくいくようになったのか - 観察から見えた3つの成功パターン

Perlでのロギング - Log::Log4perl と Log::Dispatch

【Perl×DDD】値オブジェクト(Value Object)入門 - Mooで実装する不変オブジェクト

Perlでのメール送信 — Email::* モジュール

Perlでの暗号化 — Crypt::* モジュール群

Perlでの非同期処理 — IO::Async と Mojo::IOLoop

Perlでの並行・並列処理 — Parallel::ForkManager

List::Util と List::MoreUtils - リスト処理の強力なツール

Perl WebSocket入門:Mojoliciousで作る3つの実践アプリ

Try::Tiny - 例外処理をスマートに

Perlでのデータベース操作 — DBI / DBIx::Class 入門

MooによるTDD講座 #5 - 実践的なTDDテクニックとベストプラクティス

JSON-RPC 2.0エラーオブジェクトにおけるID必須仕様 - 8年越しの誤解と正しい理解

Time::Moment — 高速で正確な日時処理

MooによるTDD講座 #4 - GitHub ActionsでCI環境を構築

Moo/Moose - モダンなPerlオブジェクト指向プログラミング

MooによるTDD講座 #3 - テストに守られながらリファクタリング

Carton/cpanfile - モダンなPerl依存関係管理

MooによるTDD講座 #2 - メソッドのテストとTest2の便利な機能

Plack/PSGI - Perl Webアプリケーションの基盤技術

MooによるTDD講座 #1 - 環境構築とはじめてのテスト駆動開発

エージェントにアサインする時の指示が要だった

Perlコンテキストの魔法 - スカラー・リスト・voidコンテキストを理解する

perl-mongerをカスタムエージェントとして定義した

Test2フレームワーク入門

GitHub Copilot の awesome-copilot で開発体験を向上させる

混乱してきたにゃ(でもちゃんと結果は出たにゃ)- AGENTS.mdの書き方実験

PerlのScalar::Util::weaken完全ガイド - メモリリークを防ぐ5つのパターン

Perlのリファレンス — 基礎から実践まで

Nano Banana Proで画像生成AI体験 - ブログのfavicon問題を解決できるか?

Perlの正規表現 — 基礎から応用まで

AIガイドラインの矛盾:DosとDon'tsが衝突したらどうなる?

Mojolicious入門 — Mojolicious::Liteで始めるPerlのWeb開発

GitHub Copilot Premium Requests:11月の振り返りと12月の抱負

CPANとは — 実務で役立つCPANモジュール20選

Perlワンライナーの芸術 - コマンドラインでの強力なテキスト処理

Perl Advent Calendar 2025 へようこそ! - AIとPerlの新しい挑戦

AIエージェントへの指示ファイルをリファクタリングした話

Copilotに「こだわり屋」になってもらってショートコードを作成した話

issueにCopilotをアサインしたら自動で修正が完了した話

カスタムエージェントのオーケストレーションを夢見て ― 複数エージェント連携の実験記録

エージェントパネルから記事を生成してみた ― GitHub Copilotで体験した新しい開発フロー

最高のAGENTS.mdを生み出すプロンプト ― GitHub Copilotで設定ファイルを作成した話

エージェントガイドラインを作成するプロンプトを試してみた

エージェントパネルで過去を振り返る記事を書いてもらった話

エージェントパネルで別リポジトリを指定してしまった話

バイブ・ブロギング実践記録:Rubyのfalsy値の記事を作った時のこと

エージェントパネルでコードブロックの言語指定を修正してもらった話

AIが作ったプログラムにバグがあった話

エージェントへの指示ファイルを手作業で編集した話

同じプロンプトから全然違うものが生成された話

GitHub Copilot エージェントの二段階レビュー体制が凄かった話

GitHub Copilot エージェントパネルでAGENTS.mdを作成した話

GitHub Copilot Coding Agent(エージェントパネル)を使ってみた

GitHub Copilot の指示ファイルを AGENTS.md に変更する

ウイスキーへの再入門

エンジニアに転向した日々を振り返る

Rubyのfalsyな値は2つだけ — シンプルで明快な真偽判定

