God Classは一つの巨大クラスに全責務を詰め込んだアンチパターン。シリーズ最終回、常連客が11回の夜で学んだ「匂い」で自社コードを診断し、Perl+Mooの委譲パターンで分割する。
Shotgun Surgeryは一つの変更が多数のファイルに波及するアンチパターン。Perl+MooでTaxPolicyクラスに税率を集約し、変更を1箇所に閉じ込める設計を物語形式で解説します。
Speculative Generalityは「将来のため」の過剰な抽象化。MooでYAGNI原則に基づき不要なロール・基底クラスを除去し、シンプルな設計へ回帰する。
Service Locatorは依存関係を隠蔽し、テストを困難にするアンチパターン。Mooのコンストラクタインジェクションで依存を明示し、コード自身が自分の必要なものを語る設計へ。
Law of Demeter(デメテルの法則)とは何か? Perl+Mooのコード例で、メソッドチェーンによる過剰な結合の問題と、handlesによる委譲での解決策を物語形式で解説します。
Temporal Coupling(時間的結合)とは何か? Perl+Mooのコード例で、メソッドの暗黙的な呼び出し順序依存の問題と、Typestateパターンによる解決策を物語形式で解説します。
Primitive Obsession(プリミティブ型への執着)とは何か? Perl+Mooのコード例で、文字列と数値ですべてを表現する問題と、Value Objectによる解決策を物語形式で解説します。
Middle Man(中間者)とは何か? Perl+Mooのコード例で、全メソッドを転送するだけの空っぽのクラスの問題と、Remove Middle Man・選択的委譲(handles)による解決策を物語形式で解説します。
Refused Bequest(拒否された遺産)とは何か? Perl+Mooのコード例で、継承した親クラスのメソッドを空でオーバーライドする問題と、Roleベース設計・委譲(handles)による解決策を物語形式で解説します。
Dead Codeとは何か? Perl+Mooのコード例で、使われなくなったコードが保守を阻害する問題と、段階的削除による解決策を物語形式で解説します。
Feature Envyとは何か? Perl+Mooのコード例で、他クラスのデータばかり触るメソッドの問題と、Move Method・委譲(handles)による解決策を物語形式で解説します。
マジックナンバーとは何か? Perl+Mooのコード例で、裸のリテラル値が引き起こす問題と、名前付き定数・設定値注入による解決策を物語形式で解説します。
共通APIがWebとMobile双方に「過剰かつ不足」になる問題を、クライアント専用バックエンド(BFF)で分化するPerl/Moo実装です
複数マイクロサービスへの直接通信でクライアントが疲弊する問題を、API Gateway と集約オブジェクトで一本化する Perl/Moo 実装です
全面切替で失敗した基幹刷新を、Strangler Fig と ACL、Facade、feature flag で段階移行する Perl/Moo 実装です