后浪笔记一零二四

如何重构代码

如何发现代码质量问题?

从大处着眼的话,我们可以参考之前讲过的代码质量评判标准,看这段代码是否可维护、可读、可扩展、简洁、可复用、可测试。落实到具体细节,我们可以从以下几个方面来审视代码。

  • 目录设置是否合理、模块划分是否清晰、代码结构是否满足“高内聚、松耦合”?
  • 是否遵循经典的设计原则和设计思想(SOLID、DRY、KISS、YAGNI、LOD 等)?
  • 设计模式是否应用得当?是否有过度设计?
  • 代码是否容易扩展?如果要添加新功能,是否容易实现?
  • 代码是否可以复用?是否可以复用已有的项目代码或类库?是否有重复造轮子?
  • 代码是否容易测试?单元测试是否全面覆盖了各种正常和异常的情况?
  • 代码是否易读?是否符合编码规范(比如命名和注释是否恰当、代码风格是否一致等)?

以上是一些通用的关注点,可以作为常规检查项,套用在任何代码的重构上。除此之外,我们还要关注代码实现是否满足业务本身特有的功能和非功能需求。

  • 代码是否实现了预期的业务需求?
  • 逻辑是否正确?是否处理了各种异常情况?
  • 日志打印是否得当?是否方便 debug 排查问题?
  • 接口是否易用?是否支持幂等、事务等?
  • 代码是否存在并发问题?是否线程安全?
  • 性能是否有优化空间,比如,SQL、算法是否可以优化?
  • 是否有安全漏洞?比如输入输出校验是否全面?

重构的步骤

  • 第一轮重构:提高代码的可读性
  • 第二轮重构:提高代码的可测试性
    • 常见的Anti-Patterns:
      • 代码中包含未决行为逻辑: 代码的输出是随机不确定的,比如,跟时间、随机数有关的代码。
      • 滥用可变全局变量
      • 滥用全局方法
      • 使用复杂的继承关系
      • 高度耦合的代码
  • 第三轮重构:编写完善的单元测试
  • 第四轮重构:所有重构完成之后添加注释
  • 第五轮重构:选择合适的返回码: NULL,异常,错误码,空对象?
  • 第六轮重构:各函数的异常处理代码

专题:

本文发表于 2021-06-28,最后修改于 2021-06-28。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 如何看懂源码 下一篇 » 设计原则概述

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image