良好的练习班级计数

Sav*_*sis 18 code-size

我知道这个问题没有正确的答案,我只是在征求你的意见.

我知道用千行代码创建巨大的类文件并不是一个好习惯,因为它很难维护,而且通常意味着你应该检查你的程序逻辑.

在您看来,类似于Java的平均行数(我不知道语言的选择是否与它有关,但以防万一...)

sle*_*ske 31

是的,我会说它确实与语言有关,只是因为某些语言比其他语言更冗长.

一般来说,我使用这些经验法则:

  • <300行:很好
  • 300 - 500行:合理
  • 500 - 1000行:也许没问题,但计划重构
  • > 1000行:绝对是重构

当然,它实际上更多地取决于代码的性质和复杂性而不是LOC,但我发现这些是合理的.


小智 16

一般来说,行数不是问题 - 稍微好一点的指标是公共方法的数量.但是没有正确的数字.例如,实用程序字符串类可能正确地具有数百种方法,而业务级别类可能只有一对.

如果您对LOC,圈和其他复杂度测量感兴趣,我强烈推荐来自http://www.campwoodsw.com的 Source Monitor ,它是免费的,适用于Java和C++等主要语言,并且非常棒.


Fed*_*oca 10

来自Eric Raymond的"Unix编程艺术"

在非数学术语中,哈顿的经验结果意味着在200到400个逻辑代码行之间的最佳点,最小化可能的缺陷密度,所有其他因素(如程序员技能)相等.这个大小与所使用的语言无关 - 这一观察结果强有力地强化了本书其他地方给出的建议,使用最强大的语言和工具进行编程.但要小心这些数字.计算代码行的方法根据分析师认为的逻辑行和其他偏差(例如是否剥离注释)而有很大差异.哈顿本人建议在逻辑线和物理线之间进行2倍转换,这表明最佳范围为400-800条物理线.

取自这里


Ale*_*man 8

更好地测量类似于圈复杂度的东西并将其用作衡量标准.你甚至可以将它粘贴在你的构建脚本/ ant文件/ etc中.

即使采用标准化的代码格式,也很容易将代码行与类的真正复杂性断开.

编辑:请参阅此问题以获取圈复杂度工具列表.


Dan*_*ner 5

我专注于方法和(尝试)将它们保持在20行代码之下.课程长度通常由单一责任原则决定.但我认为这不是绝对的衡量标准,因为它取决于抽象的程度,因此在300到500行之间,我开始查看代码以获取新的责任或抽象.