关于代码规范的一些思考

Posted by 月光下的海 on July 31, 2023
  • 有没有对错误进行处理?对于调用的外部服务,是否检查了返回值或处理了异常?
  • 设计是否遵从已知的设计模式或项目中常用的模式?
  • 开发者新写的代码能否用已有的SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
  • 工程中是否引入了无用的,功能重复的,不同版本的jar包依赖?(json类库,各种utils)
  • 有没有无用的代码可以清除?
  • 代码可读性如何?有没有足够的注释?
  • 参数传递有无错误,有没有使用断言(Assert)或判断来保证我们认为不变的条件真的得到满足?
  • 边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环?
  • 对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(包括超时时间,内存、文件、对象引用,大对象,线程数等)?有没有优化的空间?
  • 代码的效能如何?最坏的情况是怎样的?
  • 代码中,特别是循环中是否有明显可优化的部分(String的操作是否能用StringBuilder来优化)?
  • 对于系统和网络的调用是否会超时?如何处理?
  • 代码是否易于测试(方法行数,圈复杂度,出入参定义是否合理)?
  • 改动是否影响到旧版本、历史数据、上游能否兼容?
  • 接口设计是否有考虑幂等、并发、越权,降级等问题?
  • 是否存在缓存、数据库性能问题以及多数据源数据一致性的问题?
  • 上线方案是否考虑了灰度方案,数据状态不一致问题?