当前位置:网站首页>在代码评审中用好这7招,很容易就能建立起你的反对同盟
在代码评审中用好这7招,很容易就能建立起你的反对同盟
2022-07-21 13:33:00 【虚幻私塾】
优质资源分享
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
Python量化交易实战 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
在软件开发中,代码评审是一个关键的流程。
一个团队,代码评审开展的好,可以大不度的提升团队整体的交付质量,同时团队内的成员也可以很好的提升能力。
另一个方面,如果评审走歪了,代码评审可能就变成了大型踩踏的事故现场,彼此互相攻击,破坏信任等。
下面是如何搞砸一次代码评审,来为你树立敌人的7个招数:
1、代码风格的反馈
在代码评审中,对毫无戒心同事发起攻击,最好招式就是:不断指出其不符合编码规范的问题。
大多数公司内都有编码规范的文档,好好学习和利用吧。然后开始要求没有明确的提及的修改。如果代码规范中没有提到什么,那么这就是一个完美的机会,可以要求进行无意义的修改,这样就会给你要攻击的目标带来很多无意义的工作,譬如:
- 对单元测试类中的方法进行正确的类型提示了吗?
- 方法上没有添加void的标识了吗?
- 变量的命名是否过于冗长呢?
- 等等。
使用编码规范,来不断的折磨你的同伴吧。
2、要求做无意义的变更
第一步很烦人,但不会让你的敌人心生怨恨。你的继续努力,接下来就是毫无意义的变更要求。
如果有两种方法来做一件事,要求他们必须按照你的方式来修改代码,不接受那些对你不利而对他有利的理由。
你需要长篇大论的写反馈建议,来捍卫你所谓的正确。
如果你不想写太多解释性的东西,那你也可以用这样的说辞,让他们觉得自己不合理:
我不知道你为什么对我的这个要求如此难以接受呢,这样做是正确的,是对你好的,请按照我说的来,谢谢。
让你的同事,每天花大量时间来重写那些工作的很好的代码,是不是很爽呢。
3、长时间的拖延
给出评审反馈的时候不要着急。收到评审请求,在24小时,甚至48小时候,再来做评审的事情吧。当收到催促挑战时,就声称自己忙于其他事情啦。
这样做的目标是让他的PR变味。未能及时关闭的拉去分支会被认为是技术债务,需要付出额外的工作来做维护。这是一项非常烦人乏味的工作。所以尽可能的拖延每个分支的持续时间,来增加你攻击目标同事的版本合并过程中,解决冲突的风险和时间吧。
如果你的攻击目标,没有在每一版本分支拉去前,处理过2-3次的合并冲突,那你的速度就太快了,有很多的进步空间。
4、要求增加bug
要求增加变更,是增加工作量的一种很好的方式。而要求做出变更并带来bug的负面影响,这也是增加工作量的一种方式。
你攻击的对手们,一面需要努力的做出变更,然后再变更后发现了新的bug,一面还要费力的去花时间修复新增的bug,是不是很有成就感呢。
5、评审请求中只有代码规范的变更
你让你的敌人审查的每一次变更中,都至少应该包含有50%以上的非关键功能性的、不必要的代码样式上的调整。
尽可能不在请求说明关键的变更有哪些,让你的敌人们自己去猜吧,让他们盲目的去浪费时间来处理你的评审吧。
6、创建超大范围的评审
当在几十行代码上做评审,是非常容易的。但你想要的不是容易和简单,而是希望你的敌人们在收到你的评审请求是感到恐惧:让你的评审中,至少包含10几个文件,1000行以上的代码吧。
对这类的分支请求,也需要快速的处理,他们是技术债务,你可自己去合并解决代码冲突。所以要不断骚扰和催促每一个人,以快速的完成你分支的合并。
同时,也不接受任何人关于你负责分支版本反应慢的反馈,让他们知道你版本的重要性。
7、忽视他人的反馈
在代码评审期间,一直要强调这点:忽视他人的反馈,因为他们是在报复你。
在代码评审中,避免任何负面反馈造成影响最好的一个办法:忽视一切的反馈。
有人给出来了需要做出更改的反馈吗? 忽视他吧,找关系搞定版本的合并,而不是去费力的修复它。
不喜欢任何人用有效的反馈来增加你的工作量,让他们像鸭子背上的水珠,从你的分支版本上滑下来。
写在最后
让上面这些行动,不断的重复,重复,再重复。
持续几个月,你的敌人们就会后悔对你的轻视的。
如果你想让你的敌人们喜欢上代码,你不应该做的事情:
- 将你的代码风格自动化,使其能够自动处理;
- 只有比现有版本更好的方案时,才会安排变更请求;
- 快速相应拉去请求,并每天安排时间进行代码评审;
- 当请求变更时,确保所有的变更都进行了测试;
- 但你使用了新的编码风格后,安排单独的请求;
- 为代码评审创建小而频繁的拉去请求;
- 回应所有的反馈,要么同意,要么陈述你不同意的原因。
原文:
http://repohealth.io/blog/code-review-how-to-make-enemies/
边栏推荐
- Write it down once Net analysis of CPU explosion of an intelligent transportation background service
- 记一次 .NET 某消防物联网 后台服务 内存泄漏分析
- 2022.7.9暑假个人训练1-C . Clean up the Powers that Be
- Tensorflow入门教程(三十七)——DC-VNet
- LeetCode·
- pycocotools安装方法----一步到位~
- ROS2学习笔记:Launch脚本
- 多种方式Map集合遍历
- GAN的发展系列二(PGGAN、SinGAN)
- Leetcode · daily question · 814 Binary tree pruning recursion
猜你喜欢
Matlab least square fitting
全面败退,中国手机首次遭受重大挫折,三星和苹果则大幅增长
[development tutorial 7] crazy shell arm function mobile phone ble transparent transmission experiment tutorial
The darling of "all-optical" era - 400g optical module
Microservice technology development
ES6 from getting started to mastering 06: arrow function this direction and precautions
虚拟机无法连接互联网
记一次 .NET 某消防物联网 后台服务 内存泄漏分析
C#使用Objects Comparer进行对象比较
Leetcode · une question par jour · 814. Coupe d'arbre binaire · récursion
随机推荐
C# OPC客户端代码
国内期货期货中信建投可以开户吗,安全吗?
Tensorflow入门教程(三十八)——V2-Net
如何以创新驱动增长战略
动作活体检测能力,构建安全可靠的支付级“刷脸”体验
MySQL data type
ES6 从入门到精通 # 06:箭头函数 this 指向和注意事项
JS regular check can only have numbers and decimal points
Write it down once Net analysis of the memory leakage of the background service of a fire Internet of things
Windows cannot start the mysql80 service (located on the local computer)
【综合笔试题】难度 3.5/5,多解法热门二叉树笔试题
Several problems faced by long-term remote work and continuous improvement of organizational automation
ROS2学习笔记:Launch脚本
pycocotools安装方法----一步到位~
C OPC client code
[300 + selected interview questions from big companies continued to share] big data operation and maintenance sharp knife interview question column (6)
高度关注!2022开放原子开源峰会最新议程一览
Tensorflow入门教程(三十七)——DC-VNet
matlab-最小二乘法拟合
com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lo