4章取り除くことでコードを改善する
私達が美しいと考えるものとは、単純なもの、余計なものを持たないもの。
その終わりが正確に述べられているものである。
――ラルフ・ワルド・エマーソン
過ぎたるは及ばざるがごとし。それは、ありがちな格言ですが、当たっていることもあります。コードを書くために私が思い出す最もわくわくした改善は、コードの大部分を取り除くことでした。この話をさせてください。それは気持ちよいものです。
戦いの記:コードは必要ない
アジャイルソフトウェア開発チームとして、私達は神聖なエクストリームプログラミングの教義に従っており、代表的な教義にはYAGNIがあります。You Aren't Gonna Need It(それが必要になることはない)です。つまり、将来のバージョンで必要になると考えるコードであっても、不必要なコードを書かないという忠告です。それが必要なければ、今は書かないでください。必要になるまで待ってください。
これは賢明な助言に思われます。そして、私達はみなそれを受け入れてきました。
しかし、私達は何度か間違いました。私はあるとき、製品のある処理が単純ですぐに終わるべきにもかかわらず、実行に時間がかかりすぎるのに気づきました。それは、処理が過剰に実装され、必要とされていない機能があり、後の拡張のためにあちこちにフックがありました。これらはどれも使われてはいませんでしたが、その時点では賢明な追加のように思われていたのです。
それで、私はコードを単純にし、製品の性能を改善し、そしてコードベースから問題を引き起こしている「機能」すべてを単に取り除くことで、全体的にコードのエントロピーのレベルを下げました。その作業中に何も壊していないことを、単体テストが教えてくれたことは役立ちました。これは、単純で満足のいく経験でした。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access