間違った抽象化
The Wrong Abstraction — Sandi Metz
Sandi Metz
あるメンバーが機能の抽象化をした
次のメンバーがその抽象を使おうとした
その際に、元のままでは上手く行かないので、フラグ的な引数を追加した
というのを繰り返していく内に、徐々に分けわからないものになる
間違った抽象化に気づいた時に、全て戻すと良い
元の抽象を全てインライン化して、抽象を消す
必要であれば再度別の軸で抽象化をし直す
新たな要件が見つかるたびに0から構成し直す
と同じ話
上記記事の面白い点は、インライン化してリセットしようぜと言っているとこ
mrsekut.icon
実際やるにはめんどくさいのだけども、それぐらいしないと元の抽象に
引っ張られる
追加で引数が必要になるのは、間違った抽象の目印
になりそう
脆弱な基底クラス
抽象化の失敗