コードレビュー:スキルをレベルアップする方法

コードレビューがより優れた開発者になるための最も強力なツールである理由

より良い開発者になるためのコードレビュー

私の経験では、コードレビューに参加することは、開発者としてレベルアップするための最も効果的な方法です。レビューされた変更の作成者である場合は、同僚から直接フィードバックを得ることができます。また、レビュー担当者の1人であれば、実装を解決する方法については考えもしなかったさまざまなアプローチを学ぶことができます。

しかし、コードレビューを正しく与え、理解することは、学ばなければならないスキルです。この記事では、コードレビューを授受するときに考慮するいくつかの側面を簡単にリストします。私の見解では、これらは協調的で居心地の良い開発環境にとって正しい選択であることが証明されています。

私が良いコードとして定義するもの

一時的な回避策ほど永続的なものはないことを忘れないでください。

次の主要なメトリックは、コードを記述およびレビューするときに私を導きます。

  • コードは保守可能です。ハッキングや回避策はありませんが、十分に文書化されています
  • コードは読みやすいので、それについての推論ははるかに簡単です
  • コードはテスト可能であるため、前の2つのポイントがさらに改善されます

コードレビューを行う方法

謙虚になりなさい

間違っていることは問題ではありません。客観的にはそうではないのに、自分が正しいと主張することは問題です。何かを見逃したり、単にコードを誤解したりする可能性があることを常に念頭に置いてください。プッシュバックを受け入れ、何か新しいことを学ぶ機会を謙虚に受け止めてください。

コードレビューは個人的なものではありません

覚えておいてください:コードが最初に来ます。緊張した状況で誰かのコードを確認する場合があります。この状況では、2人がお互いに話し合う気分ではないか、現在の仕組みについて一般的に意見が分かれています。

コードレビューは、いくらかの蒸気を逃がしたり、欲求不満を返済したりする場所ではありません。レビューの唯一の目的は、コードの品質を客観的に改善することです。レビューしてマージされるコードは次のレガシーコードであるため、レビュー対象者に関係なく、個人的なものを脇に置いて客観的なレビューを提供することが重要です。

意見はレビューではありません

良いレビューと単なるコメントの主な違いは、レビューでは意見が省略されることです。たとえば、コードスタイルが保守可能で、読みやすく、テスト可能である限り、コードスタイルがどのように見えるかは問題ではありません。レビューが意見に分かれるかどうかわからない場合は、コメントを追加するだけで、同僚とそのポイントについて話し合うことができます。

良いレビューは良い議論につながります

レビューに挑戦することは、開発者間の素晴らしい知識の伝達につながる可能性があります。特定のレビューは、最終的なコメントとしてではなく、全体像を把握するためのディスカッションの開始点として扱う必要があります。両方とも何かを見逃している可能性があり、批判について話し合うことはあなたの洞察を向上させるだけです。

締め切りは関係ありません

強制するのは必ずしも簡単ではありませんが、コードレビューをスキップすると、誰も喜んで片付けようとしない大きな技術的負債が発生する可能性があります。時計が刻々と過ぎているのを聞いたとしても、徹底的なコードレビューを行うために必要な規律を維持することが重要です。あなたはこの混乱に取り組む次の開発者かもしれません!

参照用のリンクを使用

レビューされたコードを既存のコードと比較することは非常に頻繁に行われます。したがって、リンクを介して参照を正しく含めることが重要です。参照されているコードが配置されているおおよその場所について言及するだけでは、それはうまくいきません。

ソース管理の機能を使用して既存のブランチのコードを強調表示し、レビューで作成されたURLを参照用に使用します。同じことが、MDNなどの外部ドキュメントにも当てはまります。

コードレビューの読み方

上記のすべて

コードのコードレビューを読むと、前述のすべてのポイントに従うと、より優れた開発者になります。謙虚になり、個人的に批判するのではなく、全体像をよりよく理解するためにレビューが何を指摘しているのかを理解するよう努めてください。

客観的になる方法についての個人的な意見

この記事は、コードレビューに対する私の個人的なアプローチを反映しています。概説されたポイントは、ローカルおよび国際的なチームの大小のチームでの開発者としての私の経験の単なる集大成です。それらは機能することが証明されており、より良いコードにつながり、他の人から直接学ぶ機会を与えてくれます。