代码重构与代码异味
1. 代码覆盖率与重构效果
在代码重构过程中,DayDate 的代码覆盖率降至 84.9%,但这并非是因为测试的功能减少,而是该类的规模大幅缩减,使得未覆盖的少量代码行占比增大。目前,DayDate 的 53 条可执行语句中,有 45 条被测试覆盖,而未覆盖的代码行过于简单,不值得进行测试。
遵循一定的原则进行代码重构是很有价值的。虽然花费了一些时间,但测试覆盖率提高了,一些 bug 被修复,代码变得更清晰且规模更小。后续查看这段代码的人有望能更轻松地处理它,并且可能会进一步优化代码。
2. 代码异味与启发式规则
2.1 注释相关问题
问题类型 | 描述 | 示例 |
---|---|---|
不恰当信息(C1) | 注释不应包含更适合由其他系统(如源代码控制系统、问题跟踪系统等)保存的信息,如变更历史等元数据不应出现在注释中,注释应保留代码和设计的技术说明。 | 变更历史信息在源代码文件中大量堆积,使文件变得杂乱。 |
过时注释(C2) | 陈旧、无关且错误的注释是过时的,应尽快更新或删除,否则会误导代码阅读者。 | 曾经描述代码的注释随着代码变更变得与代码无关。 |
冗余注释(C3) | 描述代码自身已能清晰表达内容的 |