战狂粗人张

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  228 随笔 :: 0 文章 :: 12 评论 :: 20万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一.什么是代码审查

代码审查英文为Code Review,是提高开发团队技能以及保持团队迭代更新最佳的实践方法,也是代码质量管理中一个非常有效的方法。

Code Review中文译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,我们可以审查代码的风格、逻辑、思路……,找出问题,以及改进代码。

因为这是代码刚刚出炉的时候,所以,这也是代码重构,代码调整,代码修改的最佳时候。所以,Code Review是编码实现中最最重要的一个环节。

Code Review原本是整个流程中不可或缺,且较为耗时的一个质量保证环节,虽省略之后给业务方造成单位时间生产效率更高的假象,

但低质量的代码,会把团队带入漩涡,滚雪球一样的技术债,会让团队付出巨额利息。

1、保证项目质量、提高代码可读性

(1)code review可以通过reviewers的建议增进代码的质量,也能提高owner的编程态度;

(1)code review有利项目流转,可以让其它并不熟悉代码的人知道作者的意图和想法,从而在以后轻松维护代码;

(1)code review鼓励程序员们相互学习对方的长处和优点,同时可以达到知识传播;

(1)code review可以用来确认自己的设计和实现是清楚和合理的;

(1)code review帮助找到程序的bug和保证代码风格和编码标准;

 

2、加速个人成长、突出团队价值

个人的技能成长不再只依靠自己或技术主管的建议,整个团队对单人的成长都能起到帮助,成员可以获得别处无法达成的发展。

从而进一步促进整个团队生产力的提升,最终项目进度和品质都能得到很好的保障。

 

3、那为什么有些人偏偏不愿意进行CodeReview呢?

(1)时间不够问题:业务倒逼工期,时间太紧,连coding都勉强,以上线为目的。解决方法:其实这不是CodeReview的问题,这是需求管理与项目管理的问题;

(2)需求变化问题:需求变得快,代码的生命周期太短,所以都写一次性烂代码。解决方法:临时代码不是单独存在的,会影响长期在用的代码,会影响长期稳定的技术团队。

(3)人员态度问题:不想精益求精,干活交差为主。解决方法:那么更需要Review来保障质量和促进上进了。

 

前提条件:

(1)统一的标准:没有评审标准的评审是混乱的;

(1)只实施于高价值模块:关注在核心系统代码、重用的组件等对质量有高要求的模块,而快速抢占市场的迭代型项目可在交付后再补Review;

(1)Reviewer奖励机制:reviewer的评审会占用工作量,是项目质量的保证者,贡献者,应建立适当鼓励机制与每月绩效关联;

(1)代码充分注释:要求核心代码,加上充分的业务注释、逻辑注释,以便reviewer更易理解代码思路;

(1)先跑CodeStyle检查工具:不应该把人工CodeReview的精力放在指出代码样式和规范上,所以代码请先用插件跑一遍CodeStyle自行检查与修改;

 

二.实施代码审查

建议有2种做法:

方法一:代码评审会议,称之为Code Review Meeting,就是将团队成员都组织起来开会,让代码Owner上去讲自己代码的实现和思路,其它人发表意见和进行讨论。

方法二:一对一评审,称之为Single Review,就是项目owner提交代码之后,让reviewer在空闲的时候帮忙评审代码,并且写出批注,owner收到批注后,进行修改或者回复。

              但注意这里的reviewer并不是只有技术主管或架构师之类的才能做,代码质量监管仅仅靠架构师是不够的,需要所有经验丰富或有专长的同学参与其中。

那Single Review与Review Meeting根本上哪些不同呢?

1、Review Meeting

优点: 

(1)团队内新技术/新观点的交流Meeting、项目开发思路、解决方案讨论,偏头脑风暴式;

(2)各类项目都适合进行;

缺点: 

(1)依赖于主持者(项目Owner)的素质、时间成本高(为会议上所有人时间的总和);

(2)集体评审的代码行数有限;

 

2、Single Review

优点: 

(1)更偏重与具体的代码评审,人员分散参与,评审代码行数有保证;

(2)时间自由,Reviewer什么时候进行评审时间可自控;

缺点: 流程稍复杂,只适用于重要项目或核心模块;



posted on   战狂粗人张  阅读(755)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示