代码审查(Code Review)是开发流程中非常重要的一个环节,可以帮助发现并改正代码中的错误,提高代码质量,也是共享知识、熟悉代码的好机会。
最近功能开发完毕需要做代码审查,发现国内很多公司不强制要求编写代码审查文档,很多人并不会认真思考代码审查文档需要包括哪些内容,大概该怎么写。 我的看法是,虽然一般公司不要求写代码审查文档,但是最好自己能够准备一个,方便线下代码审查时不遗漏重点,跟踪代码审查的修改情况等。 本文简单给出一个简单的参考。
在准备代码评审之前,你需要做如下准备:
通常我会将项目的需求文档、设计文档、代码审查清单(仓库、分支、核心代码、核心单测、单测覆盖率等)、改进意见收集表都记录在文档中。
给出代码的仓库地址和代码的分支,项目代码相当于 Master 的diff 链接等。
仓库 | |
---|---|
分支 | |
Diff 链接 |
然后给出核心代码清单: (1)可以从功能方面划分,如每个功能对应的关键代码位置等。
序号 | 功能描述 | 核心代码引用 | 审查重点 |
---|---|---|---|
1 | 资讯的缓存功能 | FeedsCacheManager | 重点介绍 缓存 Key 和过期时间 |
2 | 资讯推荐功能 | FeedsFacade.recommend | 推荐的打分逻辑 |
3 |
(2)也可以从层次方面划分,如重点的 Facade 、 Service 、Dao、 工具类代码位置等。
序号 | 功能描述 | 核心代码引用 | 审查重点 |
---|---|---|---|
关键入口 | 功能1 | FeedsFacade.xxx | |
功能2 | FeedsFacade.yyy | ||
核心逻辑 | xxxx | XXXService.yyy | |
核心工具类 | |||
核心单测 |
以下是一个简单的【问题和改进意见记录】模版。这个模版可以根据实际需要进行调整:
序号 | 文件名/类名/方法名 | 问题描述 | 改进建议 | 问题严重级别 | 提出人 | 进度 |
---|---|---|---|---|---|---|
1 | ExampleClass.java | 变量命名不规范,使用了单字符命名 | 使用有意义的变量名,如: employeeName 代替 n | 低 | John Doe | [ ] 完成 |
2 | ExampleMethod | 方法过长,超过100行 | 尝试拆分这个方法,每个方法应尽可能完成一个具体的功能 | 中 | Jane Doe | [ ] 完成 |
3 | ExampleClass | 缺少单元测试 | 添加相应的单元测试以保证功能正确性 | 高 | John Doe | [ ] 完成 |
在这个表格中:
这只是一个基本的模版,你可以根据自己的需要进行调整和扩展。
其实准备代码审查文档并没有浪费很多时间,线下代码审查时自己能够非常清楚自己代码的重点,就可以避免遗漏要点,审查效果会更好。
代码审查文档也有助于功能开发时间过长之后,快速找到功能的入口、核心代码的位置等。 如果周围的人都不编写代码审查文档你写对应的文档,如果被主管“发现”或许会有更多“机会”。 总之,希望大家尤其是大的项目开发完毕进行线下代码评审时积极编写代码审查文档,方便自己也方便他人。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有