code review

3个月前,经过了大约2个星期的,很耗心力的设计,然后4,5天的实现,完成了一个模块的第一版,里面的算法异常的复杂,当时的感觉是如果这个问题再难一些,我可能就不能在这个方向上搞定了。

测试结果跑出来ok之后,长吁一口气,轻松的靠在椅子上,这时候突然脑袋里闪出一个问题:

我这刚刚写好的几千行代码,可以被code review么?

答案是不能被轻松的完成,一个合格的review,需要针对问题,设计,代码实现(其实也就是当前这个程序员所做的工作)都要看一下,而不是单纯的过一遍代码。

那种看看那里是不是会忘记释放内存,那里是不是多一个标点符号这样的,对于解决问题本身没有实质性帮助的方式。


code review的性价比

“code review是有好处的,1,xxxx,2,xxxx”我觉得这种不谈性价比,只谈好处(或者坏处)的讨论是不完全的,也不足以做为项目是否要启用code review的充分条件。

之前beyond3d上面也发起过一个讨论:http://beyond3d.com/showthread.php?t=63079

最后结论就是,code review也是一分价钱一分货,很多项目觉得性价比太低,最后决定不做。

我经过的所有项目的做法(其实也是我认识的开发者里面除了google都这么干的):要过milestone才做一些有限的code review,防止做过激的改变,犯低级错,这样的review也只能做到这样的事情,项目组其实也只是需要这么多。


但是如果项目组开始需要超极高的稳定性,非常高水准的设计,良好的代码结构等,那么在code review上,以及开发者的职责分配上就要做更多的投入,在google工作的同学说他们就属于这种。

进度上么,投入大的当然要慢了。


上面算是两个极端,现实中也会有reviewer在那里听实现者说一遍,实现者自己也会发现问题的情况


更进一步的code review?

如果项目组就是要追求更好的设计,代码质量,愿意付出进度的代价,我们再进一步的code review,其中会遭遇到的最大挑战是什么呢?

个人的看法就是个人在项目中的职责要发生改变,一块东西就是要变成由多个实现者来负责的,这个东西是你们来共同开发的东西,而且现在这样,在项目的未来也是这样。

否则一旦头脑里有,这一块我只是来review的,这样的想法,其把这一块做到极致的内驱力就会大幅度下降,工作这么多年下来,感觉在一个大型项目里,有很多模块,真正做好真的是不容易,需要在相当大的广度深度以及足够长的未来时间跨度上面去求最优解,没有足够的内驱力,review者(在和实现者同等水准的情况下)便无法探索出真正优秀的最优解,就会和实现者偏向同一个解决方案,然后变成vc compiler这样的,辅助型同事,而这又成了很大的人力资源浪费。



### Code Review 的最佳实践与工具 #### Code Review 的概念 Code review 是软件开发过程中不可或缺的一部分,它通过同行审查代码来提高代码质量、减少错误以及促进团队成员之间的知识共享。Code review 实践通常分为三类:结对编程 (pair programming),正式代码审查 (formal code review) 和轻量级代码审查 (lightweight code review)[^1]。 #### Best Practices for Code Reviews 为了使代码审查更加高效和有效,开发者应遵循一些最佳实践: - **保持一致性**:在代码评审中维持一致的标准有助于其他工程师轻松理解和维护代码[^3]。 - **寻找潜在问题**:检查是否存在违反合理或推荐的编程实践的情况,例如解引用空指针、数组溢出或者不可能为真的比较等问题[^2]。 - **注重风格指南**:虽然功能实现至关重要,但是良好的编码风格同样重要,因为它影响可读性和长期维护成本。 - **心理文化建设**:鼓励开放反馈的文化氛围对于接受批评意见非常重要;这不仅提高了技术能力还增强了团队协作精神。 #### 工具支持 现代 DevOps 流程依赖多种自动化工具来进行高效的持续集成/部署(CI/CD),其中包括用于管理容器化应用程序生命周期的技术栈如Docker。这些工具有助于优化应用的功能而不损害通信安全性能的同时也简化了实际的应用程序及其容器管理过程[^4]。以下是几种常用的code review工具: - **GitHub Pull Requests**: 提供了一个简单易用界面让用户提交更改请求并邀请他人参与讨论修改建议。 - **GitLab Merge Requests**: 类似 GitHub PR 功能但内置 CI/CD 支持使得整个工作流更为紧密连接起来。 - **Phabricator**: 开源解决方案适合中小型企业使用,提供详尽统计报告帮助管理者跟踪进度情况。 - **Crucible**: Atlassian 出品的专业 level 审查平台适用于复杂项目需求场景下大规模团队合作环境当中。 ```bash # Example command to initiate a pull request on GitHub CLI gh pr create --title "Add new feature X" --body "This adds support for..." ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值