Categories
286 ページ目
Tech
コンパイルもCIも緑なのに、本番だけ停止した。位置渡しをやめ名前で設定を渡す【Functional Options】
決済方法を足したら、料金計算が本番で止まった。分岐を差し替え可能にする【Strategy】
通知の改善を入れたら、課金まで壊れた。巨大な1クラスを責務ごとに切り出す【God Object】
コードメカニック シリーズ目次【困りごとから探す案内板】
正規表現で場当たりに解析していたスクリプトに、条件を足すたび限界が来る。文法を構文木にする【Interpreter】
新しい操作を足すたびに、型判定の分岐が呼び出し側に増える。操作を訪問者にして追加する【Visitor】
配列がむき出しで、構造が変わるたびに呼び出し側の走査を書き直すことになる。走査を専用の部品に任せる【Iterator】
カプセル化を壊さずに、状態を退避して後で戻したい。中身を覗かせない保管箱を作る【Memento】
モジュール同士が直接呼び合って、依存が網の目になる。やり取りを仲介役に集める【Mediator】
権限チェックを全部抱え込んだゲートが、条件を足すたびに膨らむ。審査を順に回す仕組みにする【Chain of Responsibility】
崩落の検知に、ブザーと扉と照明を直接呼んでいる。変化を知らせるだけにして連動させる【Observer】
状態を確かめる if-else が、メソッドごとに泥沼になる。状態ごとの部品に振る舞いを持たせる【State】
レバーが機器を直接呼ぶ作りで、操作の履歴も取り消しもできない。操作をオブジェクトにする【Command】
罠が増えるたびに defend メソッドを開いて書き換える。防御の方法を部品にして差し替える【Strategy】
解除コードを10個コピペして、手順の修正が全部に及ぶ。共通の流れを親にまとめる【Template Method】
1
…
7
8
9
…
20