私は、コードレビューの価値で組織を売り込もうとしています。私はそれらが採用されたいくつかの場所で働いてきました。私はそれらがスタイリングの選択や機能的な決定を軽視するために使用されているのを見てきました。また、危険なものが何も実装されていないことを確認するための腸のチェックにすぎないことを確認しました。私の直感は、最も効果的な目的は2つのオプションの間のどこかにあるということです。
では、コードレビューの目的は何ですか?
コードレビューを実施する理由はいくつかあります。
レビューを実施するためのいくつかのビジネスケースがあります。
ピアレビューの利点と実装戦略に関する包括的な議論を探している場合は、チェックアウトすることをお勧めします ソフトウェアのピアレビュー:Karl Wiegersによる実践ガイド 。
コードレビューは知識の伝達のためのツールです。
開発者が互いのコードを確認するとき、システムのすべての領域に精通します。これにより、プロジェクトのバス係数が削減され、開発者が作成していないシステムの一部でメンテナンスを行う必要がある場合に、開発者の効率が向上します。
ジュニアプログラマーがシニアのコードをレビューするとき、ジュニアプログラマーは、そうでなければ経験を通してのみ学んだトリックを取り上げることができます。これは、過度に複雑なコードに対する修正としても機能します。
徹底的なコードレビューでは、さまざまなドキュメントを頻繁にチェックする必要があります。言語やAPIを学ぶのに最適な方法です。
上級プログラマーが後輩のコードをレビューするとき、これは問題を解決する機会ですbefore彼らは技術的負債に変換されます。コードレビューは、ジュニアプログラマーのメンタリングに適した設定です。
コードレビューは以下についてではありません:
…バグを見つける。それがテストの目的です。コードレビューで問題が発見されることは依然として頻繁に起こります。
…スタイルの問題に細心の注意を払う– 1つのスタイルで解決し、自動フォーマッタを使用してそれを強制します。しかし、自動化ツールがチェックできないことがたくさんあります。コードレビューは、コードが十分に文書化または自己文書化されていることを確認するのに適した場所です。
私が個人的にコードレビューから得た最も価値のあることは、コードが他の人にとってclearであるという自信です。変数には明確な名前が付けられていますか?コードの各チャンクの目的はかなり明白ですか?コメントで明確化されている何かがありますか? Edgeケースとパラメーターの有効な値は、コメントで概説され、コードでチェックされますか?
他のすばらしい回答ではカバーされていない2つの領域を追加したいと思います。
コードレビューの大きな理由の1つは Hawthorne効果 であり、これは次のように変換されます。誰かが後でコードを確認することがわかっている場合は、そもそもコードを書くほうがはるかに優れています。 。
もう1つの大きな理由は、より安全な開発方法を実践するためです。適切なコードの重要性を理解するには、 Appleのgoto失敗 (偶発的なコードの重複行)または Heartbleedバグ (入力検証の基本的な失敗)を確認するだけです。安全な開発ライフサイクルでのレビュー。