对于面向对象语言(比如C ++,C#,Java及其喜欢的),Classes到Code of Cumber的数量比例是多少?

许多人,包括管理人员,像传统的LOC(代码行)度量标准来衡量软件的复杂性,而许多顽固的面向对象的开发人员会说LOC对其重要的类计数毫无价值。我个人认为,类可能是一个更合理的复杂度量,但如果没有LOC度量标准,那些类的实际复杂性(那里的恶作剧者和神灵的数量)很难估计。

因此,是否有人知道某些编码良好的软件可能是一个健康的比例?

编辑:在这种特殊情况下,我正在寻找一个比率来确定球场估计清理代码可能需要多少重构。

编辑:有没有人知道一些大型OSS项目的比例,如Firefox,Apache,Webkit等......?

有帮助吗?

解决方案

LOC或NLOC并不能很好地衡量代码的质量或健康状况。我建议使用 NDepend 的静态代码分析(针对您.net peeps)来了解您的解决方案的架构。

我发现只有方法级别的LOC才是好的测量方法。也就是说,我通常喜欢我的方法来适应屏幕(不小的字体)。除了单元测试之外,其他指标如Cyclomatic Complexity和Code Coverage(适用于您的TDDers)可以更好地了解您的代码库的健康程度。

其他提示

对于这个问题,确实没有一个好的,确定的或令人满意的答案。但是,我会说,根据我的经验,每个类的代码行随着面向对象编程经验的增加而减少。

大多数没有研究面向对象设计原则的人往往会拥有包含大量代码行的类。具有大量面向对象体验的人往往每个类的代码行数较少,但会有更多的类。当然,两人都会互相抱怨: - )。

如果您真的只是寻找经验法则,那么我会说任何无法以可读分辨率打印在一张纸上的类可能太长而且应该重构。您的目标标记可能在100-200行的数量级,但在我看来,页数因素更容易应对。

我也坚信页数的度量应该被视为不良因素而不是线性的因素。如果代码库中有10个页面类,那么对于我来说,感觉它至少要比一个小型的架构类更差 300万

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top