知识卡片
代码行数的欺骗性
内容
代码行数常被当作软件规模的直接指标,但它具有欺骗性:功能数量与代码行数不成比例,往往说明代码存在”肥胖症”(大量重复代码)而非真实规模庞大。真实案例:一个40多万行代码的模块经Sonar静态分析,重复代码占比高达33.9%,超过一半文件混入重复代码——这类重复只会额外增加复杂度,无助于反映真实规模。更可靠的规模度量应结合包/类/方法数量、继承层次、圈复杂度等多维指标。
参考来源
- 位置:《解构领域驱动设计》第1章《软件复杂度剖析》1.2.1节《规模》(源文件:_epub-src/OEBPS/010.xhtml)
- 结论依据:原文以40多万行代码、33.9%重复率的Sonar分析结果为真实证据,说明代码行数无法真实体现软件规模,并引用Neal Ford关于用iPlasma等工具指标指导设计的观点。
- 原始内容:该模块代码共计40多万行,重复代码竟然占到了惊人的33.9%,超过一半的代码文件混入了重复代码。显然,这里估算的代码行数并没有真实地体现软件规模;相反,重复的代码还额外增加了软件的复杂度。