Tags
25 ページ目
Code-Chef
レシピ指示を足すたびに文字列解析の if/elsif が伸びる。文法をオブジェクトの式ツリーにする【Interpreter】
Singleton のせいでテストが書けず、並列実行で状態が汚れる。グローバルな依存を DI に置き換える【Singleton】
大量の注文データでメモリが膨らみ OOM になる。共通のメニュー情報を共有して減らす【Flyweight】
同じ設定のオブジェクトを毎回 new で作って、初期化コストが重い。出来上がったものを clone して増やす【Prototype】
新しい操作を足すたびに全部の食材クラスを改修している。操作を別クラスに出して巡回させる【Visitor】
メニューを足すたびにクラスファイルが倍々に増える。調理法と食材の2軸に分けて組み合わせる【Bridge】
staging を足したら Mailer の分岐を書き漏らし、アラートが届かなかった。環境ごとの部品を一式で差し替える【Abstract Factory】
変更前の状態を呼び出し側が手でコピーしていて、項目追加でコピー漏れ。スナップショットは本人に切り出させる【Memento】
ステーション3つが互いを直接持ち合い、1つ足すたびに全クラスを直す。仲介役だけを知る形にする【Mediator】
undef チェックが3つの関数に散らばり、書き忘れで実行時エラー。「何もしない」オブジェクトで置き換える【Null Object】
権限チェックとキャッシュが3つの呼び出し元に散らばり、書き忘れでセキュリティバグ。同じ窓口を持つ代理に任せる【Proxy】
店舗ごとに承認フローの関数をコピーして、閾値の変更が反映されない。限度額を持つ担当をつなぐ【Chain of Responsibility】
注文履歴の中身を配列からファイルに変えたら、使うコードが全部壊れた。1件ずつ渡す窓口を作る【Iterator】
弁当注文のルーティングが2か所に重複し、検証の書き忘れでバグが出た。振り分けを詰め役にまとめる【Builder】
注文ハンドラが厨房の段取りを全部知っていて、厨房の変更が波及する。窓口を1つ挟む【Facade】
1
2