コードレビューのコード量


8

私の経験では、社内のほとんどのチームが、常に数百行未満の少量のコードでチームメンバーのコードを確認しています。コードが完成し、一度にすべてのレビューを受ける準備ができたときに、モジュールなどの大量のコードをレビューすることは適切ですか?



1
あなたの質問は、「一度にすべて」をレビューすることを意味します。大きなモジュールを小さなレビューセッションに分割できなかったことは言うまでもありません。

回答:


8

小さなコードレビューの理由は、効果を最大化するためです。

パーソナルソフトウェアプロセスに関する調査では、1時間あたり150〜200行以下のコードのソースをレビューする場合、レビュー担当者がレビューで特定された欠陥を最大化することに関して最も効果的であることがわかっています。その経験的データを考えると、人々が注意深く滞在できる時間を決定することが問題になります。経験的なデータはありませんが、何かを読んでから約1時間後に心が動き始めます。私にとって、これはコードレビューで一度に150行未満のコードをレビューする必要があることを示しています。


200 行の新しいコードを適切に確認するには、おそらく1時間以上かかります。まあ、JavaコードはRubyやPythonなどより簡潔かもしれませんが、厳しく変更された50行未満のチェンジリストを強くお勧めします。これらは非常に迅速にレビューでき、潜在的なバグを見逃すリスクが少なくなります。
9000

@ 9000それはあなたのレビューのレベルに依存します。各行が読み取られる正式な検査は、個々の開発者が自分のペースで読み取るデスクチェックよりもはるかに遅くなります。開発中のプログラミング言語とシステムに精通していることも影響します。150-200ライン/時間は上限です。個人的には、コードを理解し、それがシステムにどのように適合するかを判断するときに、1時間あたり80〜100行近くでコードを読んだことがわかりました。
Thomas Owens

4

チームがより良い製品を作成するのに役立つかどうかは適切です。

コードレビューが小さいチャンクに焦点を合わせることが多いいくつかの理由:

  • 大量のコードを適切に確認するには、各参加者が準備に非常に長い時間を費やす必要があり、コストがかかる可能性があります。

  • レビュー会議が長くなるほど(実際にはどの会議でも)、注意を払う人が少なくなります。2時間はほとんどの人が立つことができる程度の時間であり、会議をそれよりも短い時間(たとえば、1時間または90分のトップ)に保つことは、全員が最高の状態であることを確認するための長い道のりです。

  • 多くの場合、すべての行を確認する必要はありません。コードを確認する1つの理由は、全員が基本的に同じコーディングガイドラインのセットに固執していることを確認することです。少量のコードの詳細なレビューは、多くのコードの詳細なレビューよりも、その目的に適しています。

とはいえ、より多くのコードをレビューすることが役立つとわかった場合、そしてチームがそれに耐えられる場合は、ぜひ試してみてください。いくつかの基本的なルールと、進行中の会議を続けるためのファシリテーターとして行動する誰かがいることを確認するのに役立ちます。また、レビュー担当者に事前にコメントを送信してもらい、空白の不適切な使用などの細かいことに費やす時間を減らし、重要で興味深い問題について話し合う時間を増やすことを検討してください。


1
注意すべき点は、最初の2つの箇条書きが正式な検査にのみ適用されることです。別の開発者の都合のよいときにデスクチェックを行う場合、正式な準備(開発中のシステムに精通している場合)も会議も必要ありません。
Thomas Owens

@ThomasOwens同意する。うまくいけば、非公式のチェックも数百行よりも小さくなるでしょう。
Caleb

2

既に完了している(おそらく機能している)大量のコードを確認すると、「修正して変更する...」ではなく、「実行すべきだったはずです...」というセッションに変わります。

したがって、アクティビティの主な目的が死後の学習課題である場合、大規模なコードレビューは理にかなっています。欠陥を見つけようとするのであれば、おそらくあまりうまくいきません。レビューの全員が退屈で疲れているため、小さな欠陥は見落とされる可能性が高く、大きな構造上の欠陥は、「今では遅すぎる-コードが作成され、顧客が昨日それを望んでいる」ため、スキップされる可能性があります。


レビューの背後にある目的を特定する必要があるための+1。
Burhan Ali
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.