複数の目的に使えるコードの罠
https://gyazo.com/d9ce4b145beea57403ea07ee3815c956
ソフトウェアを作っていると「これは目的Aにも目的Bにも使えるぞ」と思う時がある。
複数の目的に使えることは、一つの目的に使えることよりも優れている。
目的Aにしか使わない人はBのための機能を単に無視するだけなので。
無視することができない(メニューがゴチャゴチャする、ボタンだらけになって操作方法が難しくなる、など)ときにはそうともいえない
しかし「一つの目的に使える」が達成されていない状態で、複数の目的に使えることを目指すと良くない。 図で、斜線の部分が既に実装したコードだとする
目的Aを達成するのにはxを実装するのが最優先
しかしxは目的Bには役に立たない
目的Bを達成するのにはzが最優先
目的Aには役立たない
どちらの目的でも有用なyを優先して実装してしまう
これは目的が曖昧なせいで、どの目的にもまっすぐ進んでない どちらの目的も達成が遅れる
ゲームを作らずにゲームライブラリを作ってしまうあるあるパターン
一つのゲームを完成させないまま、色々なものに使えそうなライブラリコードばかり使ってしまう
関連