当前位置:网站首页>如何做代码评审?
如何做代码评审?
2022-08-06 01:39:00 【是在下了】
引言
代码评审是指在开发过程中对代码的质量与效率进行检查。代码评审是所有开发团队都应该有的一个行为,在开发过程中定期的检查代码,有助于提前防止架构异变,提前发现隐藏的BUG,完善设计细节。
代码评审也是个绝佳的学习机会,团队中的个人可以借助这个机会快速的提升自己的研发能力,进而拉高整个研发团队的能力。
关注点
- 正确性。代码的变更部分是否与现有架构建立的模式一直?是否存在与现有模式相抵触的地方?是否需要重构代码,或者采用现成的架构模式?设计模式的选取是否合理?
- 一致性。检查命名。命名是否有意义?是否有晦涩难懂的命名?代码与预期的有多大出入?
- 可测试性。变更部分是否有清晰的单元测试?每一次构建都通过测试了吗?测试是否存在不充分或者不一致的情况?
- 可修改性、可维护性。是否有硬编码的情况?代码是否可以变得更灵活?是否引入了新的未通过评审的依赖?注释是否逻辑清晰?日志打印是否合理?
- 稳定性。异常处理是否前后一致?是否存在错误没有考虑到的情况?是否有重试机制?有没有采用防御性编程的思想?代码是否存在大量占用内存的可能性?算法是否高效?是否在适当的时候使用了线程安全的数据结构?
标准步骤
- 确定参与者,并且提前给出需要评审的代码,告知到所有参与者,提前熟悉代码逻辑。
- 通过远程会议、邮件、面谈的方式组会,持续时间不宜过长,一般控制在30分钟以内,可以跟团队人员做好约定定期开展。。
- 快速阅读变更集,对变更范围形成整体印象。
- 各参会人员发表意见,重点检查设计细节、代码风格、缺陷,并做好相关记录。
- 自由讨论时间,通常架构级别的问题需要评审结束后进一步单独组会讨论。
- 回顾评审结果,确定修改内容与截止日期。
建议
- 每次代码评审时间不宜过长,30分钟以内。
- 每次代码评审的量不宜过大,千行以内。
- 尽量借助Git等版本控制工具。
边栏推荐
- PyTorch笔记 - Attention Is All You Need (3)
- umi 如何设置环境变量并使用
- typescript75-创建自己的类型声明文件(为已有js提供声明)
- Less than two months after the launch, Ascend AI boosted the "China Computing Network" to add a new node
- PAT 甲级 A1087 All Roads Lead to Rome
- 两数之和——LeetCode第一题
- 学生违规使用数据库致学校IP永久被封
- STP实验
- typescript75 - create your own type declaration files (provide declarations for existing js)
- ERP inventory management
猜你喜欢

2022强网杯-07-30-re-GameMaster

DAY24:漏洞复现

PyTorch笔记 - Attention Is All You Need (3)

ResNet论文及实现

Complete regular expression tutorial, including online exercises

淀粉与纤维素

typescript71 - Existing type declaration file (built-in declaration type file)

OpenWrt之获取target architectures列表

CAN转4G远程透传记录云网关为工程机械赋能

关于近期轻量化部署任务的一个小结
随机推荐
Day4: Multiple-choice questions required for the interview
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
Kubernetes scheduler optimization
OpenWrt之kmod-nls详解
umi 如何设置环境变量并使用
海康威视秋招正式开始,快来和我做同事~
TS (TypeScript) variable type
浏览器缓存太多怎么办,清理浏览器缓存的方法
Go 语言 strings 库常用方法
deque(双端数组)——STL
剑指offer第24题(反转链表)
typescript72 - Existing type declaration files (type files for third-party libraries)
关于近期轻量化部署任务的一个小结
typescript73 - create your own type declaration files (shared types within the project)
多线程-线程调度
stack(栈)——STL
codeforces 50A.Domino piling
C语言·函数
set(自排序)——STL
STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯