“コードレビュー”やってますか?
“コードレビュー”は、ソフトウェア開発の重要なプロセスですが、往々にしておざなりにされがちです。
しかし、きちんとコードをレビューすることで、品質向上や、早期のバグ発見による後工程でのコスト削減につながります。また、病気や事故、他のプロジェクトへの突発的な火消し(!)などによる、開発メンバーの長期離脱時のリスク削減にもつながります。さらには、他の開発者が書いたコードを読んで学習することにより、コーディングスキルの向上にも役に立ちます。
今回は、「そうはいっても、現実的にコードレビューなんて無理……」という方のために、コードレビューを効率化する「Review Board」というツールを紹介します。
Review Boardの主な特徴5つ
Review Boardは、Christian Hammond氏とDavid Trowbridge氏が開発したレビューツールです。もともとは、米ヴイエムウェアでレビュープロセスを改善するために開発されたツールで、2008年にオープンソースで公開されました。
Review Boardのサイトのユーザー一覧を見ると、ヴイエムウェアはもちろんのこと、米ブロードコム、米シスコ、米クラウデラ、Twitter、Yahoo! Web Searchなど名前の通った企業でも使われています。公開から2年経ち、利用プロジェクトが着実に増えています。
以下、Review Boardの特徴を簡単に紹介します。
【1】プレコミットレビュー
RedmineやTracといったITS(Isuue Tracking System)/BTS(Bug Tracking System)にもコードレビュー用のプラグインがありますが、それらは、リポジトリへコミットした後にコードをレビューします。このスタイルのレビューを「ポストコミットレビュー」と呼びます。
Review Boardは、ポストコミットレビューに加え、コードをレビューしてからリポジトリへコミットする「プレコミットレビュー」をサポートしています。プレコミットレビューにより、リポジトリへのバグの混入を防止できます。
比較的大きなプロジェクトの単体テスト以降の工程や、出荷した製品の保守の工程では、リポジトリへ変更を反映させる前のコードレビューが多いでしょう。Review Boardはプレコミットレビューの仕組みにより、厳格なレビュープロセスを効率化できます。
【2】Webでレビューを管理
開発を支援するツールを利用するときに、直感的に分かりやすいかどうかは、初期導入の際に重要です。Review Boardでは、Webブラウザでレビューの依頼やレビューを行うことができます。
また、各レビューの状態も一目で分かるようになっています。再レビュー時に前回のレビュー指摘の内容を確認しながら指摘した個所が修正されているかどうか確認できるので、便利です。Webブラウザでレビューを管理できるので、分散開発にも向いています。
【3】レビュー依頼ツールの提供
Webのインターフェイスは万人向けで分かりやすいですが、慣れてくるとレビュー依頼ごとにWebブラウザを開くのは手間に感じるようになっていくものです。
Review Boardでは、チェックアウト/クローンしたリポジトリ上からコマンドラインのツールで簡単にレビューを依頼できるツールを提供しています。素人から玄人まで快適に利用できるようになっています。
【4】多彩なバージョン管理システムに対応
CVSやSubversion、Git、Mercurial、Bazaarといったオープンソースのバージョン管理システムや、ClearCase、Perforceなどの商用のバージョン管理システムにも対応しています。
これらのバージョン管理システムを利用していれば、現行の開発スタイルを変えずに手軽にReview Boardを追加、運用できます。
【5】オープンソースソフトウェア
多機能なレビューツールがオープンソースソフトウェアとして提供されており、無償で利用できるのは非常に喜ばしいことです。
また、Review BoardはWeb APIを提供しており、Review Boardを拡張するツールも作成できます。将来的にEclipseなどの統合開発環境からレビュー依頼を作成するようなツールの登場も期待されます。
「プレコミットレビュー」の流れ
Review Boardの特徴の紹介で、2つのレビュー方式に対応していると紹介しました。ここからは、Review Boardの特徴的なスタイルであるプレコミットレビューのフロー(図1)を例に、Review Boardの使い方を紹介します。
【1】レビュー依頼の作成
変更したソースコードに対し、レビュー依頼をReview Boardに登録します。
【2】レビュー依頼確認
レビュー実行者は、Review Boardにアクセスし、レビューを確認します。メールサーバの設定をしておけば、メールでレビュー依頼を受け取ることもできます。
【3】レビュー結果登録
レビュー実行者は、Review Boardにアクセスしてレビューし、結果をReview Boardに登録します。
【4】レビュー結果確認
レビュー依頼者はレビュー結果をReview Boardで確認します。メールサーバの設定をしておけば、レビュー結果メールでも受け取れます。
【5】コミット
レビューでOKをもらうと開発者はコミットし、レビューを閉じます。
次ページでは、実際にReview Boardの使い方をレビューの流れに沿って紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.