インターネット開発: 効率的なコードレビューのための 10 の経験

インターネット開発: 効率的なコードレビューのための 10 の経験

コードレビューは、ソフトウェア開発でよく使用される方法です。QA テストと比較すると、アーキテクチャやタイミングに関連する問題など、見つけにくい問題を見つけやすくなります。また、チーム メンバーのプログラミング スキルの向上やプログラミング スタイルの統一にも役立ちます。

1. コードレビューには優れたチーム文化が必要

チームは、コードレビューは個人にチェックポイントを設定するのではなく、チーム全体の能力を向上させることを目的としていることを認識する必要があります。

「A のコードには B によって発見されたバグがあるため、A は能力がなく、B の方が優れています。」このような罠は簡単に広がり、チーム内のコラボレーションに影響を与える可能性があるため、回避する必要があります。

さらに、コードレビュー自体が開発者の能力を向上させ、開発者が自分の間違いから学び、他の人のアイデアから学ぶことを可能にします。開発者がこのプロセスに抵抗したり嫌ったりすると、この目標は達成できません。

2. レビュー中の問題発見率を慎重な評価基準として使用する

コードレビュー中に問題が見つかった場合、その問題を発見した人にとっては良いことであり、奨励されるべきです。しかし、私たちは捕まった者を罰するためにこの方法を使うことを支持しません。ソフトウェア開発ではバグは避けられませんが、過度な要求は逆効果です。さらに悪いことに、コードレビューによって参加者が責任を取ることを恐れ、レビュー中に問題を指摘することを嫌がるようになると、コードレビューには価値も意味もなくなります。

3. レビューするコードの量を制限する

Cisco の SmartBear が実施した調査によると、毎回 200 ~ 400 行のコードをレビューするのが最も効果的です。一度にレビューするコードの量が増えるほど、問題が見つかる可能性は低くなります。具体的な比率は次の図に示されています。

実際には、コードレビューの最適な量は開発プラットフォームと開発言語によって異なることがわかりました。しかし、このプロセスは精神的に非常に負担がかかるため、一度にレビューする数を制限することが重要です。時間が経つにつれて、コードはレビュー担当者の目には論理的なつながりのない単なる文字に見えてくるので、当然、出力は多くなくなります。

4. 質問がある場合はレビューをご覧ください

すべてのコードレビューでは、まずレビュー担当者自身の経験に基づいて起こりうる問題について考え、レビュー作業を通じてそれらの問題が解決されたかどうかを確認するように依頼しています。 1 つのコツは、ユーザーに表示される関数から始めて、より複雑な使用シナリオを想定し、コードを読みながらこの使用シナリオが正しく機能するかどうかを確認することです。

この手法を使用すると、レビュー担当者はコードに関与し、真に没頭していると感じることができ、効率が向上します。武侠小説を読んでいると寝つきにくいのは誰もが知っていますが、専門書を読んでいると寝つきやすいのです。その理由は、武侠小説の方が没入感を作りやすいからです。

いくつかの研究では、単位時間あたりにレビューされるコードの量を制御するために、毎回目標を設定することを提案しています。この方法は、私たちの実践では非常に機械的かつ手続き的であり、上記の方法ほど効果的ではありません。

5. すべての質問と変更は元の著者によって確認される必要があります

レビュー中に問題が見つかった場合は、元の著者が確認する必要があります。

これには 2 つの目的があります。

(1)問題が存在することを確認し、解決する

(2)原作者に自分の問題や欠点を理解してもらい、成長を手助けしてもらう

場合によっては、効率性を追求するために、経験豊富なレビュー担当者がコードを直接変更したり、コード全体をリファクタリングしたりすることを好むことがありますが、これはチームの効率性の向上にはつながらず、リファクタリングによって新しいバグが導入される可能性が高くなります。通常、これは推奨されません。

6. コードレビューを利用して個々の「主体性」を活性化する

プロジェクトのスケジュールが厳しく、完全なコードレビューができない場合でも、少なくとも部分的なコードレビューは行う必要があります。このとき、いくつかの重要な部分をランダムに抽出すると良いでしょう。

この背後にある論理は、ソフトウェア開発は非常に創造的な仕事であり、開発者は強い自己動機と自己実現の要件を持っているということです。開発者に、自分が書いたコードは他の人に読まれ、レビューされる可能性があることを知らせることで、特に品質の低いコードや低レベルのエラーのあるコードをピアレビューに提出することを避けるよう、開発者が集中できるようになります。オープンソース ソフトウェアもこの考え方をうまく活用してコードの品質を向上させています。

7. カジュアルでリラックスした雰囲気の中でコードレビューを実施する

前述したように、コードレビューは精神的に負担のかかる作業です。参加者は比較的リラックスした環境でこの作業を行う必要があります。したがって、いくつかのプラクティスで推奨されているような会議形式でのコードレビューは効果的ではないと考えています。会議が長くなると非効率になりやすいだけでなく、会議中に生じる論争や考えが複雑な作業に役立たないからです。

8. コードを提出する前に自己レビューし、コードの説明を追加する

すべてのチーム メンバーは、コードを他のメンバーにレビューのために送信する前に、レビューを実施する必要があります。この自己修正レビューでは、コードの正確性をチェックするだけでなく、次のタスクも実行できます。

(1)他の人が確認できるように、変更の理由を説明するコメントをコードに追加します。

(2)コードの読みやすさを向上させるために、コーディングスタイル、特にいくつかの主要なデータ構造とメソッドの命名を修正する。

(3)全体的な視点から設計を見直し、すべてのシナリオが十分に考慮されているかどうかを確認します。実装前の設計に欠陥があった場合は、この段階で修正できます。

実際には、元の作成者だけがコードレビューを実行しても、コードの品質を大幅に向上できることがわかっています。

9. 実装中にメモを取ると、問題検出率が大幅に向上します。

メンバーは、コード内でコメントを使用したり、簡単な個人文書を保存したりするなど、コーディング中にメモを取る必要があります。これにはいくつかの利点があります。

(1)省略を避ける。コーディング中に思い浮かんだ問題はすべて記録され、レビュー フェーズで再確認され、解決されたことが確認されました。

(2)研究によれば、誰もが何らかの繰り返しの間違いを犯すことに慣れている。このような問題はコーディング中に記録され、レビュー時の検査の基礎として使用できます。

(3)繰り返しメモを取り、復習中に同様の問題を発見すると、そのような問題の頻度は大幅に減少する。

10. 軽量コードレビューには優れたツールを使用する

「仕事をうまくやりたかったら、まず道具を研がなければなりません。」 Bitbucket が提供するコード ホスティング サービスを使用します。

各チームメンバーは独自に機能を開発し、プルリクエストの形式でコードをレビュー担当者に送信します。レビュー担当者は Web ページ上のコードを簡単に読み、コメントなどを追加することができ、元の作成者にはレビューの意見を話し合うための電子メールリマインダーが自動的に送信されます。

チームメンバーが世界中に散らばっている場合でも、Bitbucket が提供するツールを使用すればコードレビューを適切に行うことができます。

出典: Jianguoyun (http://jianguoyun.com/)。


原題: インターネット開発: 効率的なコードレビューのための 10 の経験

キーワード: インターネット、ウェブ開発、効率的な生成、コードレビュー、10、コード、レビュー、コード、再、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  ウェブマスターが検索エンジンの変更からガイダンスのアイデアを得る方法

>>:  Baidu のハイパーリンク不正アルゴリズムから見る検索エンジンの価値

推薦する

エッジテクノロジーが将来の技術投資計画の中心となる

現在、企業組織は 5G とエッジ テクノロジーを活用して、従業員の生産性を高め、既存の製品やサービス...

SEOを学ぶにはどんな本が必要ですか?

SEO を勉強していたとき、ある問題を発見しました。実際の学習では、難しい問題に必ず遭遇します。しか...

企業にとって新しいウェブサイトの最適化はどれほど重要ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスインターネット時代の到来...

データ管理のためのマルチクラウド戦略にはどのようなものがありますか?

今日、多くの企業は、ホスティング ニーズを満たす最善の方法としてマルチクラウドに注目しています。これ...

#著作権なしの VPS# hostsolutions-$2.37/1T ハードディスク/1g メモリ/10T トラフィック/ルーマニア

Hostsolutions はルーマニアのデータセンターに安価な VPS を多数提供しており、DMC...

サークルを抜け出したビリビリの新たなジレンマ

「あなたが興味を持っている動画はすべてビリビリにあります。」この文言を見たことがある人は多いと思いま...

softshellweb: 年末プロモーション、台湾 VPS/米国 VPS/オランダ VPS、1Gbps 帯域幅、年間 34.99 ドルから

Softshellweb は年末プロモーションを開始しました。台湾 VPS、米国 VPS (カリフォ...

上海スチュワーデス事件のウェブサイトのキーワードについて語る

最近、上海航空サービス学校から配布された未来のスチュワーデスのビデオショー、「上海スチュワーデスゲー...

Linode 割引コード: Linode 割引コードは定期的に更新され、現在はすべて有効です。

多くの人は、VPS を少ないお金で購入することを好み、1 か月分のお金を費やして数か月間使用するのが...

Zhihu: 有料の知識か広告か?

最近、Duode は深セン証券取引所の成長企業市場に目論見書を提出しました。興味深いことに、この知識...

クラウド用に生まれた QingStor 分散ストレージが完全にアップグレードされました。

[51CTO.com からのオリジナル記事] 今日の話は、QingCloud の分散ストレージ製品で...

クラウドとデータセンター - あなたのビジネスに最適なのはどちらでしょうか?

今日の企業は、情報に基づいた意思決定を行い、業界の行動パターンを理解するために、リアルタイム データ...

SEO担当者が競合他社に段階的に「対処」する方法

利益をめぐる競争があるところには、必然的に競争相手が存在します。巨大な商業価値を持つ大きなパイである...

クラウドネイティブテクノロジーを導入してデジタル変革を加速する方法

包括的な「ディープクラウド導入」時代の到来により、ますます多くの中国企業がクラウドネイティブ技術を導...

ウェブサイト最適化事例: ウェブサイトのキーワードをどのように決定すればよいですか? - A5 Webmaster Network

ウェブサイト最適化の事例: ウェブサイトのキーワードをどのように決定すればよいですか? SEO とは...