コードの品質を判断する方法

コード品質の評価は非常に主観的です。

コードの品質をどの次元から判断するか

コード品質の評価は非常に主観的なものであり、可読性保守性柔軟性エレガンスシンプルさなど、コードの品質を表す言葉はたくさんあります。これらの言葉は、さまざまな次元からコードの品質を評価します。They are interacted and are not independent. たとえば、コードの可読性とスケーラビリティが優れているということは、コードの保守性が優れていることを意味します。コードの品質は、さまざまな要素を組み合わせて得られる結論です。単一の次元でコードの品質を評価することはできませ

以下は、コードの品質を説明するために耳にすることができるほとんどすべての一般的な単語をカバーしています

柔軟性、拡張性、保守性、可読性、分かりやすさ、変更可能性、再利用性、テスト容易性 テスト容易性、モジュール性、凝集度の高い疎結合、高効率、高性能、セキュリティ、互換性、使いやすさ詳細、十分に文書化された、十分に文書化されたレイヤード)、正確性 (正確さ、バグがない)、堅牢性 (堅牢性)、堅牢性 (堅牢性)、可用性 (信頼性)、スケーラビリティ (スケーラビリティ)、安定性 (安定性)、エレガンス (エレガント)、良い(良い)、悪い(悪い)...

いくつかの言葉は一般的で抽象的すぎて、エレガント、良い、悪い、きれい、明確など、全体を説明する傾向があります; ; コーディングに限定されるだけでなく、スケーラビリティなどのアーキテクチャ設計に関連する言葉もあります。 、可用性、安定性など。

そのうちの 1 つまたはいくつかでコードの品質を総合的に評価することは困難です。これらの言葉は異なる次元から来ているからです。異なる評価次元は完全に独立しているわけではなく、中には包含関係や重複関係を持ったり、影響しあったりするものもあります。

コードの品質評価が主観的であるからこそ、この主観的評価の精度はエンジニア自身の経験と大きな関係があります。エンジニアが経験を積むほど、評価はより正確になります。

最も一般的に使用される評価基準は何ですか?

1.保守性

コードの「保守性」とは?いわゆる「保守コード」とは何をするものですか? コーディング開発に関して言えば、いわゆる
「保守」とは、バグの修正古いコードの修正新しいコードの追加にすぎません。
いわゆる「コードの保守が容易」とは、元のコード設計を破壊したり、新しいバグを導入したりすることなく、コードをすばやく変更または追加できることを意味します。
いわゆる「コードの保守が容易ではない」ということは、コードを変更または追加するには、新しいバグが発生するリスクが高く、完了するまでに長い時間がかかることを意味します。

コードの保守性の良し悪しを判断する方法。

保守性は、定量化が難しく、コード全体に偏った評価基準です。

コードの保守性は、多くの要因の相乗効果の結果です。コードが読みやすく、簡潔で、スケーラブルであれば、コードの保守は容易になりますが、逆に、コードの保守は困難になります。

より具体的には、コードに明確なレイヤーがあり、優れたモジュール性があり、凝集度が高く、結合度が低く、実装プログラミングではなくインターフェースベースの設計原則に従っている場合などは、コードが保守しやすいことを意味する場合があります。

コード メンテナンスの容易さは、プロジェクト コードの量、ビジネスの複雑さ、使用されるテクノロジの複雑さ、ドキュメントが包括的かどうか、チーム メンバーの開発レベルなど、多くの要因にも関連しています。

コードが保守しやすいかどうかを正面から分析するのは少し難しいです。ただし、側面から見ると、より主観的で正確な感覚を与えることができます。バグが修正しやすく、機能の変更や追加が簡単にできる場合、そのコードは保守しやすいと主観的に考えることができます逆に、バグ修正や修正、機能追加に時間がかかってしまうと、主観的にメンテナンスしにくいコードになってしまいます。メンテしやすいかどうかは、本来メンテナ向けです。異なるレベルの人々は、同じコードに対して異なる保守能力を持っています。同じシステムであれば、熟知しているシニア エンジニアはコードの保守性は悪くないと感じるでしょうが、一部の新参者はコードに慣れていないため、バグの修正、コードの修正と追加に長い時間がかかります。コードが保守できると感じるかもしれません セックスはあまり良くありません。

2.読みやすさ

どんな愚か者でも、コンピューターが理解できるコードを書くことができます。優れたプログラマーは、人間が理解できるコードを書くことができます。

コードの可読性はどのくらい重要ですか? コードは、書かれて実行されるよりもはるかに多く読まれるからです。コードの可読性は、コードの品質を評価するための最も重要な指標の 1 つです。

コードを書くときは、コードが読みやすく理解しやすいかどうかを常に考慮してください。コードの可読性は、コードの保守性に大きく影響します。結局のところ、バグを修正する場合でも、機能コードを修正して追加する場合でも、最初に行う必要があるのはコードを理解することです。コードがよく理解されていない場合、不注意な考慮により、新しいバグが導入される可能性が非常に高くなります。
読みやすさは非常に重要なので、コードの読みやすさをどのように評価すればよいでしょうか?

コードがコーディング規約に準拠しているか、ネーミングが表現力豊かか、コメントが詳細か、関数の長さが適切か、モジュール分割が明確か、高凝集低結合に準拠しているか、など良い面として、すべての評価指標を網羅するリストを提供することは困難であることも感じていただけるはずです。これが、可読性を数値化できない理由です。
実際、コード レビューは、コードの可読性をテストする良い方法ですあなたが書いたコードを同僚が簡単に理解できる場合、それはあなたのコードが非常に読みやすいことを意味し、同僚がコードを読むときに多くの質問をする場合は、コードの読みやすさを改善する必要があることを意味します。

3.拡張性

スケーラビリティも、コードの品質を評価するための非常に重要な基準です。これは、要件の将来の変更に対処するコードの能力を表しています。可読性と同様に、コードが拡張しやすいかどうかも、コードが保守しやすいかどうかを大きく左右します。

コードの拡張性とは、元のコードを変更したり、元のコードを少し変更したりすることなく、拡張によって新しい機能コードを追加できることを意味します。率直に言えば、コードはいくつかの関数拡張ポイントを予約しています. 関数を追加したいという理由だけで戦争に行ったり元のコードを大幅に変更したりすることなく、新しい関数コードを拡張ポイントに直接挿入できます.

4.柔軟性

柔軟性は非常に抽象的な評価基準であり、柔軟性を定義することは非常に困難です。

どのような状況で、コードが適切に記述され、柔軟であると言えますか?

新しい関数コードを追加すると、元のコードには拡張ポイントが予約されています。元のコードを変更する必要はなく、拡張ポイントに新しいコードを追加するだけです。現時点では、コードが拡張しやすいと言うことに加えて、コードが柔軟に記述されているとも言えます。

関数を実装したい場合、多くの基礎となる再利用可能なモジュール、クラス、およびその他のコードが、直接使用できる元のコードから抽象化されていることがわかります。現時点では、コードが再利用しやすいというだけでなく、コードが非常に柔軟に記述されているとも言えます。

特定のインターフェースのセットを使用する場合、このインターフェースのセットがさまざまな使用シナリオに対応し、さまざまなニーズを満たすことができれば、インターフェースが使いやすいだけでなく、インターフェースの設計が柔軟である、またはコードが柔軟であると言えます。非常に柔軟です。

コードが拡張しやすい、再利用しやすい、または使いやすい場合、そのコードはより柔軟に記述されていると言えます。したがって、柔軟という言葉には非常に広い意味があり、多くのシナリオで使用できます。

5. シンプルさ

非常に有名なデザイン原則、KISS 原則があります。それは「Keep It Simple, Stupid」です。この原則が意味することは、コードをできるだけ単純に保つようにすることです。コードはシンプルで論理的です。つまり、読みやすく、保守しやすいということです。コードを書くときは、単純さと明快さを第一に考えることがよくあります。

しかし、プログラミング経験の少ない多くのプログラマーは、単純なコードには技術的な内容がないと感じており、複雑な設計パターンをプロジェクトに導入することを好み、これが自分の技術レベルを反映している可能性があると考えています。実際、真のマスターは、最も単純な方法を使用して、最も複雑な問題を冷静に解決できます。これは、プログラミングのベテランとプログラミング初心者の本質的な違いの 1 つでもあります。

6. 再利用性

コードの再利用性とは、繰り返しコードを書くことを最小限に抑え、既存のコードを再利用することと簡単に理解できます。

オブジェクト指向の機能、継承、およびポリモーフィズムの目的の 1 つは、コードの再利用性を向上させることです。
設計原則における単一責任の原則は、コードの再利用性にも関連しています。
リファクタリング手法における分離、高い結束、モジュール性などは、すべてコードを改善できます。再利用性。
再利用性も非常に重要なコード評価基準であり、多くの設計原則、アイデア、パターンなどが達成しなければならない最終的な効果です。

コードの再利用性は、DRY (Don't Repeat Yourself) の設計原則と密接に関連しています。

7. テスタビリティ

コードのテスト可能性は、コードの品質を側面から非常に正確に反映できます。
コードのテスト容易性は低く、単体テストを作成することはより困難です。これは、基本的にコード設計に問題があることを意味します。

高品質なコードを書くにはどうすればよいでしょうか?

高品質のコードの書き方を尋ねることは、保守しやすく、読みやすく、拡張しやすく、柔軟で、簡潔で、再利用可能で、テスト可能なコードの書き方を尋ねることと同じです。

これらの評価基準を満たす高品質のコードを作成するには、オブジェクト指向の設計思想、設計原則、設計パターン、コーディング仕様、リファクタリング手法など、より詳細で実用的なプログラミング方法論を習得する必要があります。これらすべてのプログラミング手法の最終的な目標は、高品質のコードを記述することです。

たとえば、オブジェクト指向の継承とポリモーフィズムにより、再利用可能なコードを記述できるようになり、
コーディング標準により、読み取り可能なコードを記述できるようになり、
設計原則における単一の責任、実装ではなくインターフェースに基づく DRY、Li スタイルの置換原則などが可能になります。再利用可能で、柔軟で、読みやすく、拡張しやすく、保守しやすいコードを作成できるようになり、設計パターンにより、拡張しやすいコードを
作成できるようになり、
継続的なリファクタリングにより、コードの保守性を維持できます。

キーレビュー

  1. コード品質のレベルを評価する方法は?
    コード品質の評価は非常に主観的なものであり、可読性、保守性、柔軟性、エレガンス、シンプルさなど、コードの品質を表す言葉はたくさんあります。これらの言葉は、さまざまな次元からコードの品質を評価します。They are interacted and are not independent. たとえば、コードの可読性とスケーラビリティが優れているということは、コードの保守性が優れていることを意味します。コードの品質は、さまざまな要素を組み合わせて得られる結論です。単一の次元でコードの品質を評価することはできません。
  2. 最も一般的に使用される評価基準は何ですか?
    コードの品質を判断するために最も一般的に使用される基準は、保守性、可読性、スケーラビリティ、柔軟性、シンプルさ、再利用性、およびテスト容易性です。その中で、保守性、可読性、およびスケーラビリティは、最も言及され、最も重要な 3 つの評価基準です。
  3. 高品質なコードを書くにはどうすればよいでしょうか?
    高品質のコードを作成するには、オブジェクト指向の設計アイデア、設計原則、設計パターン、コーディング仕様、リファクタリング手法などを含む、より詳細で実用的なプログラミング方法論を習得する必要があります。

おすすめ

転載: blog.csdn.net/rd_w_csdn/article/details/115165147