目标:

学习(知识共享) + 改进(质量保证) 促进开发工作流程的标准化!

Martin(Bob大叔)《代码整洁之道》 pic

  • 原则: 相互尊重,建立共识
  • 编码规范: 阿里巴巴 Java 开发手册:https://github.com/alibaba/p3c

checkList(检视结果——正向/负向反馈、处理跟踪)

检视项 描述 检视意见(含检视人) 处理意见及进度跟踪 备注
设计(可扩展性) 代码是否很好的设计并且适合你的系统?
功能性*****(BUG) 代码的表现是否达到了作者的期望?代码的表现是否对用户友好?所有的数据输入是否都进行了检查(检测正确的类型,长度,格式和范围)并且进行了编码?在哪里使用了第三方工具,返回的错误是否被捕获?异常处理机制;安全性检查
复杂度*****(可维护性) 代码是否可以实现的更简单?当其他开发者将来会使用到这些代码时,是否会很容易理解,可读性如何?循环是否设置了长度和正确的终止条件?是否有可以被库函数替代的代码?是否有可以删除的日志或调试代码?性能优化项
测试 代码是否被正确的及很好的设计的自动化测试过?单元测试
命名 开发者对于变量,类,方法等等的命名是否足够清晰易懂?
注释***** 注释是否清晰且有意义?对非常规行为和边界情况处理是否有描述?注释是否准确,是否过期?是否有未完成的代码?如果是的话,是不是应该移除,或者用合适的标记进行标记比如‘TODO’?
风格 代码是否符合我们的代码规范?
文档 开发者是否已经上传了相关的文档?需求背景,设计文档,实现策略等;第三方库的使用和函数是否有文档?

备注:

  • 代码样式和格式应该由自动化工具验证!
  • 单元测试?
  • 检视描述使用不同的前缀进行区分:是否要解决,是否可改进,是否为经验;
  • 技术事实和数据高于观点和个人偏好;
  • 代码风格规范是绝对的权威:硬蛋保持风格一致,如果没有规范,接受原作者的;
  • 应当关注软件设计的原则,除非有正当的数据支撑,不应当违背设计原则;
  • 持续完善检视内容,输出相关规范及最佳实践!
  • 编程素养、业务逻辑、架构设计、单元测试、性能、安全

工具:

git-ci集成静态扫描; 使用pull request进行检视 review board

时机

feature合并到dev时!避免测试之后,上线之前…

形式:

面对面; 基于git;

参考: