7章分解

意図的にレガシーコードを書く人などいません。コードベースは徐々に劣化します。

なぜそうなるのでしょうか? 1つのファイルに数千行のコードが書かれているのはよくないとか、数百行のメソッドは扱いにくいといったことは、誰でもわかっています。そんなコードベースで作業するはめになると、プログラマーは苦労します。

では、みんなが理解しているのに、どうして状況をそんなにも悪化させてしまうのでしょうか?

7.1 コードの腐敗

コードは徐々に複雑になります。それぞれの変更が小さくて、誰も全体の品質に気を配らないためです。これは一夜にして起こったりはしません。でもある日、自分がレガシーコードベースを開発してしまったことに気づき、何をするにももう遅くなっています。

図7-1で示すように、最初はメソッドの複雑度は低くても、欠陥を修正し機能を追加するにつれて複雑度が上がります。それに気を配らないでいると、たとえばサイクロマティック複雑度であれば、気づかないうちに7を超え、10を超え、15を超え、20を超えてしまいます。

コードベースが徐々に劣化する様子。最初に複雑度がしきい値を超えると問題が出てくる。だが誰もそのメトリクスに気を配らないでいると、メトリクスがとてつもなく大きくなり、どうしようもなくなってから初めて問題に気づくことになる

図7-1 コードベースが徐々に劣化する様子。最初に複雑度がしきい値を超えると問題が出てくる。だが誰もそのメトリクスに気を配らないでいると、メトリクスがとてつもなく大きくなり、どうしようもなくなってから初めて問題に気づくことになる

ある日あなたは問題に気づきます。でもそれは、やっとメトリクスを見たからというわけではなく、誰もが気づくくらいコードが複雑になったからです。ああ、何をするにももう遅いのです。 ...

Get 脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.