山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

コードレビュー

私は自分が開発することは今はあまりないのですが(あえてしないようにしています)、コードレビューはいまだにかなりの部分をやっています。

今日も1つの機能についてレビューしました。

なぜコードレビューをするようになったかというと、もうだいぶ初期の話ですが、作ったプログラムを担当者以外が一切見たりチェックしたりということがなかったので、ピアレビューという本を読んではじめてみたというのが始まりです。

実際にはコードレビューではバグを検出することはなかなかできません。
正確には見てすぐわかる低レベルなバグは見つけることができます。
でも本番リリース後におこる問題をコードレビューで全部防止しようというのは無理があります。

コードレビューの最大のメリットはソースコードの可読性をよくできるということでしょう。
自分でわかりやすいだろうと思って書いたプログラムでも他人が見ると意味不明ということは結構よくあるものです。
他人が見ることでソースをすっと理解できるところとそうでないところがはっきりわかります。
それはクラス設計のレベルでへんちくりんな設計になっていたり、妙にテクニックに走った結果複雑でわけがわからないものになっていたりということもあります。
ほんのちょっと変数名やメソッド名がその内容を適切に表していないというだけでソースの理解に時間がかかるということもよくあります。

ソースコードの可読性をよくするということは、コーディングの段階でバグを出にくくすることができます。
プログラムを書いた本人もわかりやすくなるし、コードレビューによる問題も見つけやすくなります。

また、本番稼動後の問題解決も迅速になります。
何かトラブルが起こったとき、プログラムを作った本人が対応するとは限りません。他の人が対応しなければならない場合もあります。
そんなときプログラムがわかりにくいとちょっとした問題でも半日ぐらいかかってしまうことがあります。
作った本人でも1年ぐらいコードを見なかったら忘れてしまうものです。

そして、言うまでもなく機能拡張するときもずっとやりやすくなります。

汚いコードは非常に可読性が悪いものですが、可読性の高いコードは、美しいコードとはちょっと違います。
芸術的なコードである必要は全くありません。
むしろ平凡でやっていることをそのまま記述した素直なコードが可読性の高いコードです。

そんなふうに何年もいろんな人のコードレビューをやってきた結果、いつのまにかコードレビューのエキスパートになったようです。
そのうち本でも出そうかな。