コードは他の人が最短時間で理解できるように書かなくてはいけない。 『リーダブルコード』 p3
今週、機能開発をしているプロダクトのコードを読んでいて、理解が難しく時間がかかってしまい、頭を悩ませていました。
何かヒントになるものはないかと『リーダブルコード』を眺めていて、「コードは他の人が最短時間で理解できるように書かなくてはいけない」という一文を見つけました。
コードが「読んで理解できるか」にとどまらず「最短時間で理解できるか」という、積極的な目標になっているのが気に入りました。
既存のコードベースに機能追加するとき、既存のコードで理解に時間がかかるコードがあっても、目的の変更には直接影響しないし、そこを改善するには後回しになっていました。
その結果、リファクタリングはしたいと思っているものの、リファクタリングに使う時間を確保できないということがよくありました。しかし読みやすいコードにリファクタリングをすることで、コードを理解する時間が短くなるので、結果的には素早く変更できるようになるはずです。プログラマは当然知っていますが、プログラマというのはコードを読む時間に多くの時間を費やしています。
「最短時間で理解できる」ことを目標にすることで、積極的に読みやすいコードにしていく習慣がつくのではないでしょうか。
ちょうどこの話題に関連してそうな『プログラマー脳』という本が今週発売されていたので、今日本屋で購入してざっと目を通しました。
『プログラマー脳』もコードを読むことに関する本です。認知科学の知見を援用して1コードを読むことや書くことについて解説し、より良いアプローチを提案しています。
まだしっかりと読めていませんが、コードを読む障害に、認知負荷が高すぎるということが挙げられています。適切に分割されていない関数や命名がわかりにくい変数や複雑すぎるロジックなど、プログラマなら認知負荷が高すぎるコードと言われて思い浮かぶことはあると思います。
コードは他の人が最短時間で理解できるように書かなくてはいけません。そのために認知負荷が高すぎるコードを書いてはいけないということは意識してやっていきたいと思いました。