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 実装です
外部倉庫 API の略語と状態コードが内部ドメインを汚染する問題を、ACL と Translator で隔離する Perl/Moo 実装です
単一コンシューマで詰まる出荷指示キューを、Competing Consumers と idempotency で安全に並列化します
失敗時にメッセージをキューへ戻し続ける無限リトライのアンチパターンを分解し、QueueMessage・DeadLetterQueue・MessageProcessorによるDLQ設計をPerl/Mooで実装。