インターネット開発: 効率的なコードレビューのための 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 のハイパーリンク不正アルゴリズムから見る検索エンジンの価値

推薦する

Bloggerは地方政府の審査に協力するため、自動的に国名ドメイン名にジャンプします

Blogger の記事と世界中の現地の法律との衝突は、Google にとって常に頭痛の種でした。最近...

有能な SEO 担当者になるにはどのような能力が必要ですか?

SEO ウェブサイト最適化業界で働きたい人はたくさんいますが、あなたは有能な SEO ウェブサイト最...

タオバオアライアンスのルール変更がタオバオ顧客に与える影響(第8部)

この記事は、Taobao Alliance の規則変更が Taobao Affiliates に与え...

実践サロンの必需品 | Qiu Ma が APP 運用パスから上位 10 チャネルの長所と短所を分析します

店内のサロンを見逃してしまったことを残念に思うお客様が多すぎました!ウェイターは、秋馬サロンでのスピ...

dediserve-インドネシア/Kvm/5 ユーロ/1G メモリ/20g SSD/500g トラフィック/500m ポート

dediserve.com はアジアのインドネシア データ センターにサーバーを立ち上げたばかりで、...

tmhhost: ロサンゼルスの高防御 VPS、数秒以内に 100g、cn2 gia を返す、99 元/四半期、Windows システムをサポート

tmhhost はロサンゼルスの cera データセンターに高防御の VPS を保有しています。デフ...

chicagovps-新しいデザイン、新しいビジネス

chicagovps の Web サイトは完全に刷新され、新しいインターフェース スタイルは以前より...

ウェブサイトを構築するのは高価ですか? West Digital Cloudのウェブサイト構築60%オフプロモーションは業界最安値を破る

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますインターネ...

クラウドへの移行時に避けるべき10の間違い

データベースの専門家である Chris Foot が、データベースをクラウドに移行するときに IT ...

ウェブサイトの包含重みの評価に関する検索エンジンの秘密

コアヒント: このような状況では、検索エンジンは通常、A に低い重みを与え、B に高い重みを与えます...

カスタム ISO VPS 販売業者: Windows のトラブルシューティングを可能にする安価な VPS

Hostcat は、多くの安価な VPS とカスタム ISO をサポートする多くの VPS を導入し...

県レベルの地域装飾ウェブサイトの運営戦略の分析

多くの県級市が不動産市場に対する規制を緩和し始めたため、不動産販売は明確な回復を見せており、これは不...

主流の[情報フロー広告]チャンネルを分析、戦争勃発間近!

モバイルインターネットの情報の入り口は、情報を探している人から情報を探している人へと変化しました。こ...

rectified はどのように機能しますか? rectified.net VPS レビュー、KVM、無制限帯域幅 VPS

先日、「良い x: 修正済み - 年間支払い $12/KVM/1000M ポート/無制限トラフィック...