/note/tech

コードレビューについて

このところ立て続けにコードレビューについて話をする機会があったので 私が経験した最高のレビュー体制を簡単にまとめておこうと思います。

つまり、コードの中にコメントの形でレビューを書き、それをコミットする。 そしてそこから派生する議論も全てコード上のコメントで行います。 (もちろん複雑な話になった場合は直接の議論を行い、合議の結果だけを記しておく、なども当然あるでしょう。) レビューと議論が終わった際にはそのコメントを消すか(いずれにせよ VCS に記録は残っています)、有用な情報だと判断されれば普通のコメントとして残されることになります。

物理的にチームの人間が集まりレビューを行う、日本人が好きそうなこの体制、私は全く評価しませんし軽蔑します。 時間の無駄です。 既にそのコードを知っている人には退屈だし、そのコードを担当しない人には退屈だし、そのコードを書いた人にとっては糾弾会になる恐れもある。 小学校の時のおわりの会みたいなもんです。 シニアメンバーのジュニアいじめによるストレス解消くらいしか利点はないのではないですか。

一番簡単なレビューの書き方は # RV <書いた人>: <コメント> です。:

# RV alice: Plz give a fancier name than `foo'!

foo = do ...

RV は誰でも何でも書くことができます。 変数名がわかりにくすぎる、ほとんどコピペされたコードが他にある、アルゴリズムがおかしいように見える、そもそも書かれているコードの詳細がわからない、コーナーケースが押さえられていない、などなど。