Tags
17 ページ目
Anti-Pattern
あらゆる処理を1つのクラスが抱え込み、直すたびに全体が揺れる。責務ごとに分けて委譲する【God Class】
消費税率を直すだけで15ファイルを開く羽目になった。税率を1つのクラスに集める【Shotgun Surgery】
実装が1つしかない抽象クラスと、一度も使わないオプションが残っている。将来のための設計を消す【Speculative Generality】
テストのたびにモックを登録してリセットする。ServiceLocator をやめ、依存をコンストラクタで受け取る【Service Locator】
注文から顧客、住所、都市名まで -> でたどる。Customer を直したら周りも全部壊れる【Law of Demeter】
init() を先に呼ぶ手順を飛ばされて、本番が落ちた。呼ぶ順番をコードの型で縛る【Temporal Coupling】
メールアドレス欄に電話番号が入り、金額は文字列のまま足されて桁がずれる。値を専用の型にする【Primitive Obsession】
OrderManager を通す決まりで、メソッドが全部ただの転送になった。間の一段を外して直接呼ぶ【Middle Man】
継承した save と delete を die で潰し、update は空にした。継承をやめて必要な性質だけ受け取る【Refused Bequest】
前任者の3年前のコードが怖くて消せない。呼び出し元を確かめて、段階的に削除する【Dead Code】
レポート生成メソッドが $order-> だらけで、Order の変更のたびに壊れる。処理をデータのある側へ移す【Feature Envy】
if 文に 36 と 72 と 3600 が並び、書いた先輩はもういない。裸の数値に名前を付ける【Magic Numbers】
夜間バッチを並列にしたら、テストの処理が本番DBを書き換えた。接続を外から渡す【Singleton/DI】
テーマを1つ足すたびに、アルゴリズムの数だけクラスが要る。継承で作ると6クラスから12クラスに増える
海外対応を足すと if/else が増えて、注文処理が読めなくなる
1
2