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