4章取り除くことでコードを改善する

私達が美しいと考えるものとは、単純なもの、余計なものを持たないもの。

その終わりが正確に述べられているものである。

――ラルフ・ワルド・エマーソン

過ぎたるは及ばざるがごとし。それは、ありがちな格言ですが、当たっていることもあります。コードを書くために私が思い出す最もわくわくした改善は、コードの大部分を取り除くことでした。この話をさせてください。それは気持ちよいものです。

戦いの記:コードは必要ない

アジャイルソフトウェア開発チームとして、私達は神聖なエクストリームプログラミングの教義に従っており、代表的な教義にはYAGNIがあります。You Aren't Gonna Need It(それが必要になることはない)です。つまり、将来のバージョンで必要になると考えるコードであっても、不必要なコードを書かないという忠告です。それが必要なければ、今は書かないでください。必要になるまで待ってください。

これは賢明な助言に思われます。そして、私達はみなそれを受け入れてきました。

しかし、私達は何度か間違いました。私はあるとき、製品のある処理が単純ですぐに終わるべきにもかかわらず、実行に時間がかかりすぎるのに気づきました。それは、処理が過剰に実装され、必要とされていない機能があり、後の拡張のためにあちこちにフックがありました。これらはどれも使われてはいませんでしたが、その時点では賢明な追加のように思われていたのです。

それで、私はコードを単純にし、製品の性能を改善し、そしてコードベースから問題を引き起こしている「機能」すべてを単に取り除くことで、全体的にコードのエントロピーのレベルを下げました。その作業中に何も壊していないことを、単体テストが教えてくれたことは役立ちました。これは、単純で満足のいく経験でした。 ...

Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック 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.