開発プロジェクトの大半は保守であり、
プロジェクトの期間が長くると、コードを書くのに使う時間と既存コードを理解するために使う時間が同程度になる。
10万行以上のコードを読むことなどザラであり、なぜ読むのに苦労したかを考える。
コードリーディングの苦労から、逆にコードを書くときにどのような工夫をすべきかを考えないといけない。
読み手の苦労を考慮すると、
- 直交性(2つ以上のものごとで、片方を変更しても他方に影響を与えない)
- 凝集性(関連性の高いまとまりをモジュール化すること)
に行きつくのだが、こうした方法論ではなく、読み手の苦労を軽減する発想で自然に
到達するほうがよろしいかと思われる。
つまり、
- イベントドリブンやコールバックなどを利用して敢えて読みにくくする
- 変更に強いコードを書く(決め打ちなどダメ)
- コード同士の依存性を弱めて敢えてコードを増やす
- フレームワークやメタプログラミングでコードを減らす
などさまざまな技法が存在し、100点満点の解は存在しえない。