Googleのコードレビュー
»
Googleのコードレビューのプロセス、ツールの紹介がここ(Youtube)にある。55分と長いのでなかなか全部をみる時間がなかったが、休日に時間がとれたので観た。このエントリはそのときのメモだ。
Googleのコードレビューのプロセスはオープンソースのものと似ている。オープンソースのものより若干強制力のあるプロセスとそれをサポートするツール(Mondrian)があるそうだ。ビデオでプレゼンされているのは、Guido van Rossum氏、Pythonの作者でGoogleに就職して最初の仕事がMondrianの開発だったそうだ。定着しているプロセスの実行を支援するツールは非常に頼もしいだろうなぁと思う。
詳細はビデオをみていただきたいが、プレゼンの概要は以下のとおり。
- プロセスはオープンソースのレビューのやり方がベースとなっている。
(前のバージョンとの差分をMLに投げるとレビュアがその部分を中心にレビューしてくれる) - ピアレビューに近い形態で、基本的に異なる計算機上(遠隔地の場合もある)でやる。
- 指摘内容は基本的にツールへの入力によりレビュアからコード作成者に伝えられる。
- レビュアにとってlgfm(looks good for me)状態になるまでレビューは続けられ、その状態になれば構成管理ツールにチェックインされる。(ソースコードをチェックインする前に全てのソースコードがレビューされた状態になる)
- レビュー結果を提示するWebベースのツール(Mondrian)がある。(ツールがなかったころは運用上の問題がいくつかあった、とのこと)
- ツールが提示する内容はダッシュボードと呼ばれ、個人別のダッシュボードが存在し、そこから自身が開発しているソースコードのレビュー状況をみることができる。
私がおもしろいと思ったところは、以下のとおり。
- 「レビューは不具合をみつけるのではなく、信頼感を醸成するためのものだ。」
- 「レビュー(ピアレビュー)はペアプログラミングの代替である。」
- Mondrianはソースコードの任意の部分にコメントをいれる機能を提供している。
- Googleの新入りをNooglerと呼ぶ。
このような形のピアレビューは、大きすぎない製品開発型/サービス開発型のプロジェクトではよく実施されているように思う。ビデオで紹介されていたレビューのプロセスは中身を理解して、1行ずつみていくタイプのレビューだ。読むスピードがもっと速いPerspective-based Readingについては言及がなかった(Perspective-based Readingについてはここやここに書いた)。Googleでは、たとえばセキュリティ等の特定の観点で全体をざっと流すレビューも多く実施されていると思われるがそのあたりの言及がなかったように思う。
SpecialPR