code review的一些思考
必要性
个人认为有以下必要性:
- 可以筛选出脑子抽风或者注意力不集中的情况;
人不是机器,总会在某个情况下抽抽一下,然后就会出现很简单的逻辑写错,到头来自己都很纳闷为什么自己会写出这样的代码;
注意力不集中时,或者被写代码被打断之后重新开始编码,也会出现写出来的代码和自己想要的代码出现偏差的情况,即手抖、手瘫、黄油手......
这种情况下在需求开发阶段到还好,如果是临上线,或者是代码影响范围很广,那么这个时候的脑子抽一下或者手抖一下可能会带来严重的后果。如果测试刚好漏掉了,或者流程不规范,代码修改之后压根不过测试的手,或者不通知测试,那么临上线时改代码出错的概率将会大大增加。
- 复习业务逻辑;
code review 时可以整理出需求的大致逻辑,然后梳理一遍。有疑问的地方跟产品经理沟通进行确认。
这个作用在需求开发阶段尤其重要,很可能一个沟通不到位就会导致逻辑错误从而导致所有的代码重写;
- 熟悉代码
不管是 review 自己的代码还是 review 别人的代码,都能提高对代码的熟悉程度。这点对于团队中的管理者或者是想成为管理者的人至关重要。你不一定是写代码的那个人,但你必须是最熟悉代码的人。在讨论新需求是你就是那个能够最快做决定的人,如决定需求能不能做、改动大不大、耗时多久等等。如此,才能统筹全局。
- 培养写代码的好习惯;
数组越界、字符串判断、空判断,这些都是写代码必须养成的习惯,否则一个很隐蔽的 crash 最后查了半天是因为一个非空判断没有写导致的,那么效率将会受到很大影响。
另外,写代码要有自己的一套流程,这套流程的细节不一定要人人一样,但个人认为大体要符合:
需求确认 -> 大体思路梳理 -> 流程图 -> 整体设计 -> 类设计 -> 数据模型设计-> 接口设计-> 编码
code review 也可以帮助自己完善这样的一套流程,养成一个好习惯,这样在最后的编码阶段基本上就是填字游戏了,效率高且不容易出错;
总之,code review 不仅可以帮助你避坑,还可能让你升职加薪,好处多多。
细节
代码逻辑
业务逻辑
字符串判断
数组越界判断
非空判断
......
奖惩措施
奖惩措施不仅针对于 code review,其更重要的目的是规范团队流程,提高团队效率,保证项目安全;
管理者可以制定一些奖惩措施来达到此目的,但是需要遵循几个原则:
- 固定时间
比如设定每周五写周报之前抽出时间来进行 code review,并且规定这段时间发生的 fix 相关的 merge/commit 不影响代码质量评定,或者占比降低,或是减轻处罚;相当于给一个自查的机会。
- 严重程度分级
线上重大 Bug、影响主流程的 Bug 肯定更加严重;
开发阶段发现的 Bug 肯定优先级最低,但是如果是基础习惯问题,也要严肃对待,比如很明显的不写数组越界判断,不判断字符串等;
- 避免开发者因为惩罚而去尝试瞒报
人总是趋利避害,也很会逃避。所以真的遇到比较大的事故时,有的人可能第一反应就是怎样把这个事情瞒下去,比如官场就经常如此,大概流程是:
先瞒,再拖,再想办法改,不行就拆东墙补西墙,实在没辙了就躺平;
这样做的原因无非就是利害关系,官场上只要出事必定追责,轻则处罚,重则影响仕途,甚至是几十年仕途直接断送。对于我们团队管理而言,要规避掉这一点,所以对于提前报备的一些 Bug、事故,可以从轻处罚。
有什么事不要瞒着,说出来大家一起探讨,权衡之后,真可以瞒,大家一起瞒啊
code review的一些思考相关推荐
- 如何做好Code Review:思考、方法和实践
最近被要求做一个关于Code Review的讲演.首先要说明的是,我并不是太擅长开展Code Review的活动.做这个完全是因为答应了别人又不好反悔.不过在做准备的过程中还是有一些感想. 关于Cod ...
- Google是如何做Code Review的?| CSDN原力计划
作者 | 帅昕 xindoo 编辑 | 屠敏 出品 | CSDN 博客 我和几个小伙伴一起翻译了Google前一段时间放出来的Google's Engineering Practices docume ...
- 万字详文告诉你如何做 Code Review
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习实验室 前言 作为公司代码委员会 golang 分 ...
- 在腾讯,如何做 Code Review?
作者:cheaterlin,腾讯 PCG 后台开发工程师 前言 作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论.发现不少同学 code ...
- Code Review 是一场苦涩但有意思的修行
来自:阿里巴巴中间件 文 | 孤尽 前言 最近 CodeReview(以下简称CR )心态相当的平和,代码是一个讲道理的东西,是就是,否就否.在 CR 时,沟通特别轻松,问题讨论也特别聚焦,因为它 ...
- 如何做好Code Review
时光匆匆流逝~ 今天是工程能力学习的最后一篇笔记了! 首先给坚持努力的自己呱唧呱唧! 然后搬好前排小板凳 学习啦! 本节课为<如何做好Code Review>,内容包括:为什么要做好Cod ...
- Google: 如何做code review?
导语:Google 前几天公开了一篇谷歌的工程实践文档,内容跟 code review 相关,里面包含了 Google 工程师如何进行 code review 的内容,以及 code review 指 ...
- 你有做 Code Review 吗?
在代码的编写中有一个很重要的环节,经常会被忽视,那就是 Code Review ,据说在 Facebook.Google 这种互联网大公司,要求每一个提交都必须通过审查,对于每个工程师来说 Code ...
- 在腾讯,如何做 Code Review
作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论.发现不少同学 code review 与写出好代码的水平有待提高.在这里,想分享一下我的 ...
- 作为开发人员,这四类Code Review方法你都知道吗?
本文翻译自:https://dzone.com/articles/4-types-of-code-reviews-any-professional-developer 转载请注明出处:葡萄城官网,葡萄 ...
最新文章
- c语言修改elf文件crc32,hash/crc32
- 时间序列研(part3)--单积性
- [Abp 源码分析]多租户体系与权限验证
- 为Java应用程序编写数据驱动的测试
- Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)
- 光电显示未连接服务器,T106串口服务器解决方案
- MyEclipse 代码自动提示功能失效 提示No Default Proposals 或 no completions available 的解决方法 转...
- ytkah网站建设解决方案 大中小微企业营销利器
- 微信小程序-图片上传功能的实现
- html中怎么设置字体形状,html如何设置字体样式 HTML里怎么设置字体大小?
- 计算机专业html5的毕业论文范文,5000字计算机专业大专毕业论文参考范文
- 来了!PCB多层板解析
- [朴孝敏][Ooh La La]
- 读《聪明人用方格笔记本》有图了有内容了
- wireshark 找不到wifi无线网卡的解决方法
- 俄罗斯方块游戏shell编程代码
- 下拉推荐在 Shopee Chatbot 中的探索和实践
- 主成分分析(PCA)与K-L变换
- 跳槽加薪谋发展还是等公司配股?
- iOS-AppStore审核指南(2017最新版)