権限チェックとキャッシュが3つの呼び出し元に散在し、1か所の書き忘れでセキュリティバグ。ProxyパターンをPerlとMooで実装し、実APIと同じcheck_stockシグネチャを持つ代理クラスが認可とキャッシュを一か所で担い、呼び出し元はオブジェクトを差し替えるだけにする。
承認フローをstore別に関数コピーして閾値変更が反映されずバグ。Chain of ResponsibilityパターンをPerlとMooで実装し、ハンドラが限度額を属性として持ち実行時にチェーンを組む設計で、コピーなしに店舗別ポリシーを実現する。
注文履歴を配列で持つクラスの内部をファイルに変えたら、全コードが壊れた。IteratorパターンをPerlとMoo::Roleで実装し、「一件ずつ渡す窓口」を作ることで内部表現の変更が外に波及しない設計へ。仕組みから丁寧に解説します。
弁当注文システムのルーティングループが2か所に重複し、検証の書き忘れでバグが出た。BuilderパターンをPerlとMooで実装し、add_itemが振り分けを一手に引き取る仕組みを丁寧に解説します。
注文ハンドラが厨房の仕込み・加熱・盛り付けを直接呼ぶ密結合なコードを、Facadeパターンで整理します。PerlとMooで「窓口クラス一枚」を設け、呼び出し元が厨房の内部変更に影響されない設計へ。仕組みから丁寧に解説します。
「注文する」「取り消す」操作が手続きとして散らばり、取り消しも履歴も持てないコードを、Commandパターンで整理します。PerlとMooで操作をexecute/undoを持つ部品にまとめ、やり直しのきく形へ。仕組みから丁寧に解説します。
単品とコースを if で分けて計算し、コースの中にコースが入ると合計が崩れるコードを、Compositeパターンで整理します。PerlとMooで単品もコースも同じ顔で扱い、合計を再帰的に求める設計へ。仕組みから丁寧に解説します。
外部モジュールの内部仕様への依存が3サービスに散在し、仕様変更のたびに修正漏れが起きるコードを、Adapterパターンで整理します。PerlとMooで「変換役を一か所」に集める設計へ。仕組みから丁寧に解説します。
トッピング追加のたびにcostとdescribeの2か所修正が必要になるコードを、Decoratorパターンで整理します。PerlとMooで修正箇所を1クラスに同居させ、既存コードを変えずに追加できる設計へ。仕組みから丁寧に解説します。
通知の生成コードが複数サービスに散在し修正漏れが起きるコードを、Factory Methodパターンで整理します。PerlとMooで生成の判断を呼び出し側から切り離す設計へ。仕組みから丁寧に解説します。
日報生成クラス3種が同じ骨格をコピペで持ち、修正漏れが起きるコードを、Template Methodパターンで整理します。PerlとMooで骨格を親クラスに一本化し、変わる部分だけサブクラスに任せる設計へ。仕組みから丁寧に解説します。
注文ステータスが変わるたびに全ステーションへ手動で通知するコードを、Observerパターンで整理します。PerlとMooで、Subject が通知先を知らなくてよい設計へ。なぜ追加するとき Subject を触らなくて済むのかを仕組みから丁寧に解説します。
複数のbooleanフラグで席を管理し「空席なのに会計待ち」の矛盾に陥るコードを、Stateパターンで整理します。PerlとMooで状態自身に次の遷移を持たせ、ありえない組合せを作れなくする設計へ。仕組みから丁寧に解説します。
巨大なif/elsifに膨らんだ割引計算を、Strategyパターンで『割引ごとの小鍋』に分けます。PerlとMooで、会計の本体を変えずに割引を追加できる設計へ。なぜ条件分岐が整理されるのかを仕組みから丁寧に解説します。
God Classは一つの巨大クラスに全責務を詰め込んだアンチパターン。シリーズ最終回、常連客が11回の夜で学んだ「匂い」で自社コードを診断し、Perl+Mooの委譲パターンで分割する。