codeReview规范
2023-02-18 16:31:15 时间
review组
方向 | merge权限 | 人员 |
---|---|---|
xxx组 | xxx | xxx |
售前 | xx | xxx |
支付 | xxx | xxx |
用户 | xxx | xxx |
目前codeReview机制
- 开发周期较长或是较重要的需求(由开发者自己把握),由开发者组织线下review,一般在公司约定会议室或是钉钉视频会议,参与评审的人提出修改意见,评审者针对修改意见进行修改
- 开发周期较短且非关键的需求(由开发者自己把握),会由开发者发出线上review(Merge Request),参与评审的人提出修改意见,review完后complete此review请求
目前codeReview机制存在问题
- 没有review
- 参与Review的人太多了,意见太分散,Review时间拉的很长,发现问题效率低
- 有时候发现一个CodeReview时间很长,参与者可能会觉得煎熬和浪费时间
- 有时候不太了解对方评审的东西,没法跟上大家思路,影响效率
- 有时候走查的代码量太大了,无法做到详细走查,匆匆结束,根本发现不了问题,起不到reivew的作用
CodeReview的目标和原则
CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。
1. 发现代码的正确性代码
2.不仅是在Review Code,更是在分享和学习
- Code Review最重要的是讲解者分享业务流程和设计思路,使得更多人理解这个系统,提升团队整体水平,使得团队维护代码的能力提升。
3. 高效迅速的完成CodeRevie
- 我们不能为了应付匆匆忙忙的进行一次代码审查,效率也是很重要的,如果不能保证Code Review目的实现,那么评审便是徒劳的
如何高效完成CodeReview?
1. 检查设计的合理性和业务逻辑的正确性:
- 代码设计是否考虑到后续业务的发展,而尽量避免定制化的设计。
- 关注使用到的数据结构、设计模式和代码性能
- 业务流程是否按照设计的流程走或者有丢失的流程
- 某些传入参数是否合理
- 是否有异常处理机制
- 代码的设计是否符合设计要求
- 业务逻辑是否正确
- 关注业务可拓展性
2.检查代码可读性和可维护性
- 关注代码注释:函数和逻辑判断最好要标注一下这个函数或者这段判断是用来做什么的
- 关注命名规范:可参考阿里JAVA开发规范
- 关注重复代码:如果出现大量的重复性代码,要考虑将这些代码抽象出公用函数,以减少代码量并增强代码可读性。
- 关注繁琐的逻辑:如果一个简单的功能却对应大篇幅的代码,要考虑一下是不是有比较简单的实现方式;如果没有简略的办法,一定要把注释写好。
3. 分享设计、技术、知识和经验
如何快速完成CodeReview
所谓的迅速就是节省时间,只要我们尽量避免一些意义不大的事情就能节省时间,加快评审速度
- 如果评审内容比较多,评审者应该尽量拣核心的业务逻辑重点讲
- 参与评审的人如果时间不允许全部review,也应该尽量拣自己感觉容易出问题的点去看,比如dubbo配置文件、当前需求会不会给其他功能带来影响等
- 不要刻意地去寻找代码bug
- 不要在不确定的问题上争来争去
CodeReview的执行
1. CodeReview前
- 评审者应提前发出Review邀请,把需求文档和设计文档发给参与评审的人,这样参与评审的人可以提前了解业务需求和设计方案,避免评审时一头雾水,现场临时去了解业务需求,耽误大家的时间。
- 线下reivew,评审者和参与者都要提前做好准备
- 如果评审内容很多,且可以明显的划分出不同的业务模块或批次,建议分批次评审
2. CodeReview中
- 线下Review采取讲解与提问的方式
- 线下Review过程中发现的问题,须准确的记录下来
- 线上Review,直接在问题处提出评论
3. CodeReview后
- 确认问题点的修改时间及责任人
- 确认问题点修改后的确认人
相关文章
- 我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式
- 【架构师(第二十五篇)】编辑器开发之属性编辑区域表单渲染
- 【架构师(第二十六篇)】编辑器开发之属性编辑同步渲染
- 2021年度“CCF-腾讯犀牛鸟基金”发布结题评优结果
- 【架构师(第二十七篇)】前端单元测试框架 Jest 基础知识入门
- 太空噗|重燃太空热潮!与噗噗星人一同探索星海浪漫
- 算法工程师深度解构ChatGPT技术
- 【架构师(第二十八篇)】 测试工具 Vue-Test-Utils 基础语法
- 【架构师(第二十九篇)】Vue-Test-Utils 触发事件和异步请求
- 【架构师(第三十篇)】Vue-Test-Utils 全局组件和第三方库 vuex | vue-router
- 【架构师(第三十一篇)】前端测试之 TDD 的开发方式
- 【架构师(第三十二篇)】 通用上传组件开发及测试用例
- 【架构师(第三十三篇)】 Vue 中的实例及本地图片预览
- 【架构师(第三十四篇)】 业务组件库开发之 vue3 的插件系统
- 【架构师(第三十五篇)】 业务组件库开发之使用 Rollup 进行打包
- 【架构师(第三十六篇)】 业务组件库开发之发布到 NPM
- 【架构师(第四十二篇)】 服务端开发之常用的登录鉴权方式
- 【架构师(第四十三篇)】 服务端开发之单元测试和接口测试
- 【架构师(第四十四篇)】 服务端开发之 pm2 和 nginx 介绍
- 【架构师(第四十六篇)】 服务端开发之安装 Docker