LoC Is a Dumb Metric for Functions
7 months ago
- #clean-code
- #software-development
- #refactoring
- 业余开发者常仅基于代码行数而非深入思考来拆分函数。
- 诸如'这个函数看起来不整洁'的美学论点不足以支持重构,需要更深层次的论证。
- 代码行数(LoC)是衡量函数整洁度的糟糕指标,认知复杂度(CC)是更好的替代方案。
- 函数分解存在代价,包括降低局部性、线性度,增加上下文开销。
- 可复用性和去重应是分解的主要原因,而非武断的代码行数。
- 可测试性和依赖注入是合理的提取理由,但应作为最后手段。
- 有时调用函数本身承担过多职责,需要重构而非分解。
- 自包含性、良好命名和注释可在不必要分解的情况下提升可读性。
- 多态性应仅在合理时引入,而非在简单场景中过早使用。
- 重构应由判断和推理驱动,而非武断的规则或代码行数。