コードレビューの歴史
コードレビューの歴史に関して良い記事があったのでメモ。
【元ネタ】
コードレビューいろいろ - steps to phantasien
コードレビューは非同期ペアプログラミングとも言える。
二人の目を必ず通すことで、ソースの品質をチェックする。
ソースインスペクションを真面目にやるGoogle、MS: プログラマの思索
コードレビューはペアプログラミングの代替手段: プログラマの思索
コードレビューでよくあるのは、ウォークスルー。
コードレビューされる人が司会者となり、別のレビューアにコードレビューしてもらう。
ウォークスルーは、司会者によほどの力量がない限り、あまりうまくいかない。
一人の人の役割が大きすぎるからだ。
「Code Complete第2版―完全なプログラミングを目指して」のような本では、インスペクションが推奨されている。
インスペクションは、モデレータ、書記など役割分担がはっきりしており、事前準備の計画、議事録、レビュー後のチェックなどのプロセスが定義されている。
厳格なだけに実施するための準備が多いし、インスペクションの経験者がいなければうまく回らないだろう。
CMMやTSP、清水吉雄さんが提唱されているXDDPでよく使われていると思う。
コードレビューをサポートするツールは、Googleが自社開発のために作ったMondrianが一番有名だろう。
そこから各種のオープンソースツールが生まれた。
多分、ReviewBoardが一番有名だろう。
今なら、Gitと一体化したGerritが有名かもしれない。
コードレビューで多いスタイルは、コミット前のレビュー。
ReviewBoardではプレコミットレビューの機能が既にあり、充実している。
ReviewBoardでプレコミットレビュー: プログラマの思索
コミット後レビューで多いのは、Diffメール。
SVNにコミットしたら、その差分をメーリングリストに流す。
Diffメールを使うプロジェクトは今でも多いだろうし、Diffメールからコードレビューに発展する時も多いだろう。
コードレビューいろいろ - steps to phantasienの記事で面白かったのは、Bugzillaに既にパッチの差分ファイルを添付することでコードレビューする機能がプラグインとして提供されていたこと。
BugzillaのプラグインSplinterを使うと、差分表示してくれるらしい。
Splinter ? patch review for Bugzilla ≪ fishsoup
また、Bugzillaにはパッチのレビューのステータスを管理する機能もあるとのこと。
この機能があるだけでも、全く違ってくるだろう。
(引用開始)
Bugzilla は Mozilla によって開発され, WebKit でも使われている. Bugzilla にはファイルを添付できる以上の大仰なレビュー支援機能はない. そのパッチがレビュー要求であること, パッチのレビューが受理されたことを, フラグとして管理できるだけ. でもフラグをはじめとするメタ情報を検索でフィルタできるから, メールよりはレビューの進捗を把握しやすい.
(引用終了)
RedmineやTracなら、パッチの添付ファイルは差分表示してくれるし、コードレビューそのものをチケット化することで、一つの作業とみなせる。
ツール自身もどんどん進化している。
だが、コードレビュー専用のツールの方が使いやすい場面も多いかもしれない。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「Redmine」カテゴリの記事
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- 第22回 Redmine大阪の感想 #RedmineOsaka(2025.09.21)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
「ソフトウェア工学」カテゴリの記事
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)


コメント