6

オブジェクト指向言語 (C++、C#、Java など) のクラス数とコード行数の適切な比率はどれくらいですか?

マネージャーを含む多くの人々は、ソフトウェアの複雑さを測定するために従来の LOC (コード行数) メトリックを好みますが、ハードボイルドなオブジェクト指向開発者の多くは、LOC は重要なクラス数の価値がないと言うでしょう。そして個人的には、クラスは複雑さのより合理的な指標かもしれないと信じていますが、LOC 指標がなければ、それらのクラスの実際の複雑さ (そこにいるポルターガイストと神々の量) を推定するのは難しいと思います.

したがって、かなり適切にコーディングされたソフトウェアの健全な比率となる可能性が高いことを誰かが知っていますか?

編集: この特定のケースでは、コードをクリーンアップするために必要なリファクタリングの量の大まかな見積もりを決定するための比率を探しています。

編集: Firefox、Apache、Webkit などの大きな OSS プロジェクトの比率を知っている人はいますか?

4

3 に答える 3

8

LOC や NLOC は、コードの品質や健全性の正確な尺度ではありません。NDependの静的コード分析 (.net の覗き見用) を使用して、ソリューションがどれだけうまく設計されているかを確認することをお勧めします。

LOC は、メソッド レベルでのみ適切な測定であることがわかりました。つまり、私は通常、自分の方法が画面に収まるのが好きです (小さなフォントは使用しないでください)。単体テストに加えて、Cyclomatic Complexity や Code Coverage (TDDers 向け) などのその他の指標を使用すると、コードベースの健全性をよりよく感じることができます。

于 2008-10-09T06:18:56.530 に答える
2

経験則を探しているだけなら、読み取り可能な解像度で 1 枚の紙に印刷できないクラスは、おそらく長すぎるため、リファクタリングする必要があります。その場合、ターゲット マークは 100 ~ 200 行程度になる可能性がありますが、私の考えでは、ページ数の要素の方が対処が少し簡単です。

また、ページ数のメトリックは、線形ではなく、悪意の要因尺度と見なされるべきであると固く信じています. コード ベースに 10 ページのクラスがある場合、適切に設計された小規模なクラスよりも少なくとも300 万倍悪いと感じます。

于 2009-11-04T16:09:10.553 に答える
2

この質問に対して、良い、決定的、または満足のいく答えは実際にはありません。ただし、私の経験では、オブジェクト指向プログラミングの経験が増えるにつれて、クラスごとのコード行数が減少します。

オブジェクト指向設計の原則を学んでいないほとんどの人は、非常に多くのコード行を含むクラスを持つ傾向があります。オブジェクト指向の経験が豊富な人は、クラスあたりのコード行数が少なくなる傾向がありますが、より多くのクラスを持つことになります。そしてもちろん、両者はお互いに不平を言うでしょう:-)。

于 2008-10-09T06:15:49.797 に答える