Tags
221 ページ目
Refactoring
通知の生成コードが複数サービスに散らばって修正漏れ。new する判断を窓口に集める【Factory Method】
日報生成クラス3種が同じ手順をコピペ、直すと修正漏れが出る。共通の流れを親クラスにまとめる【Template Method】
注文ステータスが変わるたびに全ステーションへ手で通知している。登録した相手へ自動で伝える【Observer】
空席のはずの席が「会計待ち」になる。bool フラグの組み合わせをやめて状態を部品にする【State】
割引の if/elsif が膨らんで、触るのが怖い。割引ごとの部品に分けて差し替える【Strategy】
あらゆる処理を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】
1
…
7
8
9
…
15