業務の中で、関係の強いコードはまとめるというレビューをいただき、同じような内容が「プリンシプルオブプログラミング」にも記述があったので整理しました。
どういうこと? 変更の影響を抑える
「結果の局所化」とは、「変更の影響が、局所に留まるようにコードを構成する」ことを指す。
モジュール化もこのために生まれた技術の1つ。モジュールは、そのモジュールの変更の影響を、モジュール内に留めることを目標の1つとして生まれている。
どうして? 修正と確認が容易に
結果の局所化がされていないと、ある部分の変更が、全く別の部分に影響して、変更コストが急増してしまう。
この時、どの部分に影響があるか明確に分かればまだ救われますが、たいていは不明瞭で、影響範囲を探す作業から開始する。
一方で、結果の局所化がされていれば、コードの読む範囲も修正の影響範囲も限られる。またコミュニケーションが円滑になる効果もあり、最初からコード全体を把握する必要がなくなる。
どうすれば? 関係が濃密なコードをまとめる
関係性の高いコードを密集させ、関係性の低いコード同士が依存しないようなコードにする。そのために関係性の高いコードを集約してモジュール化する。
この時、お互いに頻繁に呼び出しあっているモジュールは要注意。つまり本来一緒にいるべき要素が、分散している可能性がある。この場合、適切なモジュールの方に機能を寄せるか、モジュール機能を統合してしまうなど、同一機能の密集性を高めるようにする。