主要なコードレビューツール
コードレビューはシステム開発の中で大切な工程の1つです。コードレビューを1行ずつ目で確かめていたら、工数が膨大になってしまうでしょう。近年では、工数の削減や正確性の担保などのためにさまざまなコードレビューツールがあります。ここでは、代表的なコードレビューツールを詳しく紹介します。
GitHub
GitHubとは、システム開発プロジェクトのためのソースコード管理サービスです。ソースコードを更新したバージョンの管理機能・バグ追跡機能・SNSの機能が備わっているため、開発者にとっては必要不可欠とも言えるサービスです。そしてGitHubには、プルリクエストの画面にコードレビューツールが備わっています。無料でも利用できますが、データ量や月々に実施できるアクション数に制限があるため、チームやプロジェクト単位で使用する際には有償版を使用するのがおすすめです。
GitHubでは、プルリクエストごとにレポジトリへのアクセス権をもっているユーザーをレビュアーとして割り当てることが可能です。プルリクエストを提出したユーザーは、管理者にコードレビュー依頼もできます。変更履歴の確認やプルリクエストの議論、インラインでコメントを付けることも可能です。GitHubのコードレビューツールでは、Gitにおけるコンフリクトをインターフェイス上で解決することもできます。
また、マーケットプレイスを利用して、他のレビューツールと統合させれば、レビュー機能を拡張させることも可能です。GitHubに備わっているコードレビューツールには、レビューに必要な機能が全て組み込まれているため、追加でダウンロードやパラメータの設定などは不要です。 (参考:https://github.com/ )
Collaborator
Collaboratorは、SmartBear社が開発したコードレビューツールです。Collaboratorではソースコードのレビューだけではなく、ドキュメントのレビューもできます。Collaboratorは有償ですが、無料試用版も用意されています。
Collaboratorでは、他のコードレビューツールと同様に、Git・Subversion・Perforce・CVS・Mercurial・TFSなど、多数のバージョン管理システムをサポートしているのが特徴です。また、Jiraなどのプロジェクト管理ツールやEclipse・Visual Studioなどの統合開発環境(IDE)とのシステム連携することもできます。Collaboratorには、レビュー管理とバグ追跡の機能もあり、プロジェクトメンバーを支援する機能も豊富です。他にも、ソースコードの修正・変更を確認し、欠陥を特定して特定の行にコメントを付ける機能もあります。 (参考:https://smartbear.com/product/collaborator/overview/ )
Review Board
Review Boardは、Christian Hammond氏とDavid Trowbridge氏によって開発されたオープンソースのコードレビューツールです。オープンソースなため、開発者によって日々バージョンが更新されているのが特徴です。Review Boardでは、ソースコードとドキュメントの両方のレビューを行うことができるほか、ソースコードをグラフィカルに表示することもできるため、ソースコードを更新した際の差異を比較するのが簡単です。Webサイトで試用版を利用することもできるため、1度試してみてから、プロジェクトなどに活用するかどうか検討も可能です。また、システムをダウンロードし、自身のPCにインストールしてセットアップすることもできます。
Review Boardを使用するためには、Pythonの実行環境が必要です。また、MySQLなどのデータベースの用意・ApacheなどのWebサーバーの設定・ソフトウェアを実行するためのライブラリなども必要です。Review Boardは、Git・Mercurial・CVS・Subversionなど多くのバージョン管理システムと統合することができます。また、Review BoardをAmazon S3に統合して、Review Boardの中でスクリーンショットの保存も可能です。 (参考:https://www.reviewboard.org/downloads/ )
Phabricator
Phabricatorは、Phacillity社が提供しているオープンソースのコードレビューツールです。Phabricatorをダウンロードし、自身のPCにインストールするのは無料で行うことができます。また、ユーザー数も限定することなく使用でき、有償版ではクラウド上のサービスを使用することもできます。有料プランの場合、サポートも含まれているのが特徴です。Phabricatorは、Git・Mercurial・SVNの3種類のバージョン管理システムが対応しています。
例えば、プロジェクトのチームメンバーと事細やかに議論したい場合には、Phabricatorを利用すれば可能です。プレコミット・ポストコミットの両方のソースコードレビューができます。また、Phabricatorには、システム開発においてプロジェクトをサポートするための追加ツールが備わっています。例えば、バグを管理するビルトイントラッカーが提供されています。
以上からも、Phabricatorには、開発効率を向上させるための機能はほとんど備わっているのが特徴です。プロジェクトが初期段階にある場合には、Phabricatorはおすすめと言えます。 (参考:https://secure.phabricator.com/ )
コードレビューツールが必要な理由
コードレビューツールを使用する理由について気になる方は多いでしょう。最初に説明しましたが、開発効率の向上やコストの削減が主な理由として挙げられます。コードレビューツールを使用することで、他にも多くのメリットがあります。
例えば、コードレビューツールを使用すれば、プロジェクトチームが継続的にコードレビューを確実に行えるようにサポートすることができます。全てのコードレビューについて一元管理ができたり、問題の追跡や解決がわかりやすいように可視化したりすることが可能です。
コードレビューツールによって、プロジェクトメンバーや関係者の間のコミュニケーションもサポートすることができます。コードレビューツールを利用すれば、関係者間の認識齟齬を減らすことや、プロジェクトメンバーが議論しやすいプラットフォームを提供することができるため、無駄な工数を大幅に削減が可能です。
また、コードレビューツールには、バグ・エラーの履歴を保存したり表示したりする機能もあります。したがって、ナレッジの文書化・共有が簡単にできるようになります。コードレビューで文書化された履歴は、新しいプロジェクトの際に活かすこともできるため、大切なリソースです。
コードレビューとは
そもそも、コードレビューについて詳しく知らない方も少なくないでしょう。コードレビューの概要や目的を知っておくことは、コードレビューツールを採用する際にも役立ちます。コードレビューとは、記述したソースコードをレビューすることで、エラー・バグがないかを確認する作業のことです。プログラムの品質を担保するためにも重要な工程の1つと言えます。ここでは、コードレビューの概要や目的について詳しく紹介します。
コードレビューの概要
コードレビューは、記述したソースコードを自分以外の誰かに問題ないか確認してもらうことを指します。レビューを行う人をレビュアー、レビューされる人をレビュイーと言います。システム開発を実施する際に、コードレビューは必ずといてもいいほど実施されるでしょう。例えば、プロジェクトによってはレビュアーの許可がない限り、ソースコードを修正することができなかったり、次の工程に移ることができなかったりします。コードレビューのルールは、プロジェクト発足当初に定めるのが一般的です。
コードレビューの目的
コードレビューの目的はいくつかあります。主な目的は、ソースコードにエラーや設計上の問題がないか確認することです。つまり、システムの品質を担保することが大きな目的と言えます。コードレビューの方法もさまざまですが、自身が記載したソースコードを上司や他のプロジェクトメンバーが確認することが一般的でしょう。
その他の目的として、上司のソースコードを見て勉強するというように、新人教育にコードレビューが使われることもあります。他人が記述したソースコードを読むことで、コーディング方法やフレームワークのスキルを身に付けることが可能です。コードレビューによって、開発者の意図も把握できる良い機会となるため、スキルアップにもつながります。
コードレビューについて理解を深めてプロジェクトに適したコードレビューツールを導入しよう!
これまでに、主要なコードレビューツール・コードレビューツールが必要な理由・コードレビューの概要や目的について解説しました。主要なコードレビューツールとして、「GitHub」「Collaborator」「Review Board」「Phabricator」などが挙げられます。他にも多種多様なコードレビューツールは存在するため、プロジェクトに合ったコードレビューツールを導入することが重要です。
コードレビューツールを導入する主な目的は、開発効率の向上です。また、そもそもコードレビューを実施する主な目的は、システムの品質担保です。システムの品質を担保しようとして、レビューに工数を多くかけてしまうことは少なくありません。そのため、開発スピードを高めるためにも、コードレビューツールを使用してみるのはおすすめと言えます。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから