ホームページ バックエンド開発 PHPチュートリアル コードレビューから学んだ 5 つの教訓

コードレビューから学んだ 5 つの教訓

Nov 30, 2016 am 10:34 AM
コードレビュー

チームメンバーがこう言うのをよく聞きます:

「このプロジェクトのコードレビューは時間の無駄です。」

「コードレビューをする時間がありません。」

「意地悪な同僚のせいで立ち上げが遅れました。」私のコードはまだ審査されていません。」

「同僚が私にコードを変更するように頼んだことを信じられますか?なぜ、このようなエレガントで完璧なコードを変更する必要があるのですか?」

コードレビューから学んだ 5 つの教訓

検閲?

プロのソフトウェア開発者にとって最も重要な目標の 1 つは、仕事の品質を継続的に向上させることです。しかし、チームワークを通じてのみ、努力を 1 か所に集中してソフトウェアの品質を向上させることができます。コード レビューは、この目標を達成するための最も重要な方法の 1 つです。特に、コード レビューでは次のことが可能になります。

別の観点から欠陥とより良い解決策を発見します。

あなたのコードに詳しい人が少なくとも 1 人いることを確認してください。

上級開発者のコ​​ードを参照して、新入社員のトレーニングを支援します。

知識の共有を促進します。

レビュー中に他の人に発見されるのを避けるために、開発者がより良いコードを書いてコード内の問題を解決するよう動機づけます。

コードレビューは徹底しなければなりません

しかし、実際にコードレビューを徹底して時間とエネルギーを費やすことができなければ、上記の目標を達成することは困難です。

私の意見は、元の開発時間の約 25% をコード レビューに費やす必要があるということです。たとえば、開発者がプロ​​グラムの実装に 2 日かかる場合、レビューには約 4 時間かかるはずです。

もちろん時間は最も重要なことではありません。重要なのは、コードを正しくレビューできるかどうかです。レビューしているコードを理解する必要があります。これは、構文を知る必要があるだけでなく、コードがどのようにアプリケーションのコンテキストに適合し、コンポーネントまたはライブラリの一部になるのかも理解する必要があることを意味します。コードの各行の意味を理解できない場合、レビューは十分ではなく、あまり価値がありません。これが、適切に実行されたコード レビューを迅速に完了することがほとんど不可能である理由です。サードパーティ API が正しく使用されていることを確認するために、特定の関数をトリガーするさまざまなコードを調査する時間が必要になるためです。

レビューするときは、コードの欠陥やその他の問題を探すことに加えて、次のことも確認する必要があります:

必要なテストをすべて含める。

適切な設計ドキュメントが作成されています。

テストやドキュメントを書くのが得意な開発者でも、コードを変更するときにコードを更新することを忘れてしまいます。コードレビューでは、この情報が時間の経過とともに無駄にならないようにする必要があります。

過度のコードレビューを避けてください

開発者は、レビュータスクのバックログを解消するために懸命に取り組む必要があります。これを行う 1 つの方法は、午前中にコード レビューを行い、独自の開発作業を開始する前にレビューを完了させることです。もちろん、昼食の前後や一日の終わりにコードをレビューすることもできます。全体として、コードを重荷としてではなく、日常業務の一部として扱う必要があるため、次のようなことは避けるべきです。

レビュー タスクのバックログに対処する時間がない。

レビューが不完全なためリリースが遅れました。

無関係なコードを愚かにもレビューしましたが、渡された後、認識できないほど変更されていました。

時間の関係で急いで手続きを進めました。

レビュー可能なコードを書く

コードのバックログが制御不能になったとき、責任を負う必要があるのはレビュー担当者だけではありません。たとえば、同僚が大規模なプログラムに乱雑なコードを追加するのに 1 週​​間を費やした場合、リリースされたパッチのレビューは困難になり、内容が多すぎて理解したり掘り下げたりすることができなくなります。コードの目的や基本構造さえも不明瞭です。これはコードを書くことではありません。

レビュー可能なコードを書く前に、いくつかの準備をする必要があります。アーキテクチャに関して難しい決定を下す必要がある場合は、まずレビュー担当者と話し合うのが最善です。これにより、コードは、何を達成したいのか、どのようにそれを達成する計画があるのか​​を事前に知っているため、コードのレビューと理解が容易になります。これにより、後でレビュー担当者がまったく異なるより良いアプローチを思いついた場合に、コードの大部分を書き直す必要がなくなります。

プロジェクトのアーキテクチャは設計書に詳しく記載する必要があります。これは、新しいプロジェクト スタッフが既存のコード ベースをより迅速に理解できるようになり、レビュー担当者の仕事をより適切に行うのにも役立つため、重要です。さらに、単体テストにより、レビュー担当者は個々のコンポーネントの使用法をより深く理解できるようになります。

パッチにサードパーティのコードも含まれている場合は、別途提出してください。想像してみてください。9,000 行の jQuery がコードの途中に挿入された場合、レビューの難易度は大幅に増加しますか?

レビュー可能なコードを作成する際の最も重要な手順の 1 つは、コードレビューに注釈を付けることです。これには、自分自身で事前にレビューし、レビュー担当者の理解に役立つと思われる箇所にコメントを追加する必要があります。コメント後のコードレビューには比較的時間がかからないことがわかりました (通常はわずか数分)。もちろん、必要に応じてコード コメントを使用する必要があります。さらに、調査によると、開発者自身がコードにコメントするときに多くの既存の欠陥を発見することがわかっています。

コードのリファクタリング

場合によっては、コードベースをリファクタリングする必要があります。大規模なアプリケーションに遭遇した場合、数日 (またはそれ以上) かかり、多数のパッチが生成される可能性があります。この場合、コードレビューの標準プロセスを実装するのは非現実的である可能性があります。

最善の解決策は、コードを段階的にリファクタリングすることです。まず適切な範囲を与え、対応するコードベースを決定し、次に目標方向に修正と再構築を行います。最初の部分が完了したら、レビューして公開し、その後、すべてが完了するまで 2 番目の部分をリファクタリングします。この段階的なアプローチは常に可能であるとは限りませんが、考えたり計画したりするときにこのアプローチを使用すると、リファクタリング時に大規模なモノリシック パッチを回避できます。もちろん、このアプローチではより多くのリファクタリング時間が必要になる可能性がありますが、より高品質のコードが生成され、レビュープロセスが容易になります。

コードの増分リファクタリングがまだ実現できない場合、別の解決策はペアプログラミングです。

紛争解決

チームのメンバー全員が才能があることに疑いの余地はありませんが、特定のコーディングの問題に直面した場合、簡単に意見の相違が生じる可能性もあります。開発者として、私たちは広い心を持ち、レビュアーからのさまざまな意見を喜んで受け入れる必要があります。

評者としては、機転を利かせて語らなければなりません。提案をする前に、自分の意見が本当に優れているのか、それとも単なる好みの問題なのかを検討してください。本当に改善が必要なコード領域を選択すると、説得力のあるプロセス全体がはるかに簡単になります。そしてその言葉は、「私が目を閉じて書いたアルゴリズムはあなたのアルゴリズムよりも効率的である可能性があります。」ではなく、「ここで検討する価値はあります...」、「誰かが提案しました...」のように言うべきです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

コードレビューの練習に Go 言語を使用する方法 コードレビューの練習に Go 言語を使用する方法 Aug 02, 2023 pm 11:10 PM

コードレビューの練習に Go 言語を使用する方法 はじめに: ソフトウェア開発プロセスにおいて、コードレビュー (CodeReview) は重要な練習です。チームメンバーは、お互いのコードをレビューして分析することで、潜在的な問題を特定し、コードの品質を向上させ、チームワークを高め、知識を共有することができます。この記事では、コードレビューの実践に Go 言語を使用する方法を紹介し、コード例を添付します。 1. コード レビューの重要性 コード レビューは、コードの品質を向上させるためのベスト プラクティスです。コード内の潜在的なエラーを見つけて修正し、コードを改善します。

Java開発でコードレビューとパフォーマンスの最適化を行う方法 Java開発でコードレビューとパフォーマンスの最適化を行う方法 Oct 10, 2023 pm 03:05 PM

Java 開発でコード レビューとパフォーマンスの最適化を行う方法には、具体的なコード サンプルが必要です。日常の Java 開発プロセスにおいて、コード レビューとパフォーマンスの最適化は非常に重要なリンクです。コードレビューによりコードの品質と保守性が保証され、パフォーマンスの最適化によりシステムの動作効率と応答速度が向上します。この記事では、Java コードのレビューとパフォーマンスの最適化を行う方法と、具体的なコード例を紹介します。コード レビュー コード レビューは、作成されたコードを 1 行ずつチェックし、潜在的な問題やエラーを修正するプロセスです。次の

Python 開発経験の共有: コードレビューと品質保証の実施方法 Python 開発経験の共有: コードレビューと品質保証の実施方法 Nov 22, 2023 am 08:18 AM

Python 開発経験の共有: コード レビューと品質保証の実施方法 はじめに: ソフトウェア開発プロセスにおいて、コード レビューと品質保証は重要なリンクです。優れたコードレビューにより、コードの品質が向上し、エラーや欠陥が減少し、プログラムの保守性と拡張性が向上します。この記事では、Python 開発におけるコードレビューと品質保証の経験を次の側面から共有します。 1. コード レビュー仕様の作成 コード レビューは、コードの包括的な検査と評価を必要とする体系的な活動です。コードレビューを標準化するには

PHP コードレビューと継続的インテグレーション PHP コードレビューと継続的インテグレーション May 06, 2024 pm 03:00 PM

はい、コードレビューと継続的インテグレーションを組み合わせることで、コードの品質と配信効率を向上させることができます。具体的なツールには次のものがあります。 PHP_CodeSniffer: コーディング スタイルとベスト プラクティスを確認します。 PHPStan: エラーと未使用の変数を検出します。 Psalm: 型チェックと高度なコード分析を提供します。

C# 開発ノート: コード レビューと品質保証 C# 開発ノート: コード レビューと品質保証 Nov 22, 2023 pm 05:00 PM

C# 開発プロセスでは、コードの品質保証が非常に重要です。コードの品質は、ソフトウェアの安定性、保守性、拡張性に直接影響します。コードレビューは重要な品質保証手法として、ソフトウェア開発において無視できない役割を果たしています。この記事では、開発者がコードの品質を向上できるように、C# 開発におけるコード レビューの考慮事項に焦点を当てます。 1. レビューの目的と意義 コードレビューとは、コードを注意深く読んで検査することによって、既存の問題や誤りを発見し、修正するプロセスを指します。その主な目的は、

React コード レビュー ガイド: フロントエンド コードの品質と保守性を確保する方法 React コード レビュー ガイド: フロントエンド コードの品質と保守性を確保する方法 Sep 27, 2023 pm 02:45 PM

React コード レビュー ガイド: フロントエンド コードの品質と保守性を確保する方法 はじめに: 今日のソフトウェア開発では、フロントエンド コードの重要性がますます高まっています。 React は、人気のあるフロントエンド開発フレームワークとして、さまざまな種類のアプリケーションで広く使用されています。ただし、React の柔軟性とパワーにより、高品質で保守可能なコードを書くことが困難になる場合があります。この問題に対処するために、この記事では React コード レビューのベスト プラクティスをいくつか紹介し、いくつかの具体的なコード例を示します。 1. コードスタイル

GitLab でコードレビューとマージリクエストを行う方法 GitLab でコードレビューとマージリクエストを行う方法 Oct 20, 2023 pm 04:03 PM

GitLab でコード レビューとマージ リクエストを実施する方法 コード レビューは、チームが潜在的な問題を特定し、コードの品質を向上させるのに役立つ重要な開発手法です。 GitLabではマージリクエスト(MergeRequest)機能により、コードレビューやマージ作業を簡単に行うことができます。この記事では、GitLab でコード レビューを実行し、リクエストをマージする方法について、具体的なコード例を示しながら説明します。準備: GitLab プロジェクトを作成し、関連するファイルがあることを確認してください。

C++ コードのコードレビューを行うにはどうすればよいですか? C++ コードのコードレビューを行うにはどうすればよいですか? Nov 02, 2023 am 09:12 AM

C++ コードのコードレビューを行うにはどうすればよいですか?コード レビューはソフトウェア開発プロセスの非常に重要な部分であり、開発チームが潜在的なエラーを特定して修正し、コードの品質を向上させ、その後のメンテナンスやデバッグの作業負荷を軽減するのに役立ちます。 C++ のような強く型付けされた静的言語では、コード レビューが特に重要です。ここでは、効果的な C++ コード レビューを実施するために役立つ重要な手順と考慮事項をいくつか示します。コード レビュー標準を設定する: コード レビューを実施する前に、チームは共同でコード レビュー標準を開発し、さまざまなエラーや違反について合意する必要があります。

See all articles