如何进行CodeReview
一、代码规范的要点
代码规范主要分为风格规范与设计规范两大类:
1、代码风格规范
主要是文字上的规定,看似表面文章,实际上非常重要。
具体有如下几个方面:
(1)缩进
(2)行宽
(3)断行/空白行
(4)括号
(5)命名(字母、下划线、大小写)
(6)注释
A、单行注释
B、多行注释
C、变量/方法/类/包注释
2、代码设计规范
牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。
主要有如下几个方面:
(1)方法/函数的写法
A、方法命名
B、方法参数(入参/返回值)
C、方法的职责
比如:避免out型参数、用枚举替代boolean、同类型参数最好间隔开、超过4个参数最好抽象成一个类、参数和返回值最好不传null、用卫述句减少if嵌套、方法连续调用要注意空指针、for循环优于while
(2)异常处理原则
比如:异常的抽象层次应该与方法所在的层次一致,业务层方法要对底层异常进行转译为业务异常
(3)分层/类设计原则
比如:在某一个层进行防御式校验,某一层按约定不做参数校验;比如调用到的外部接口封装为facade防腐层;
(4)单测原则
比如:快速/及时、独立、可重复、覆盖主要代码路径、无副作用
二、CodeReview注意事项
主要根据团队设定的代码规范,来review团队成员的代码,大致有以下几个方面:
1、代码有没有不符合代码规范的
比如:命名、注释
2、代码有没有(业务/算法)逻辑错误
比如:功能与需求有偏差;参数传递顺序出错;方法的边界条件有没有考虑等
3、代码有没有回归错误
比如:之前的功能回归测试不通过
4、代码有没有潜在性能问题
比如:考虑大数据量、大并发量下的性能下sql是否有问题?是否会有内存泄露?死锁等
5、代码有没有其他待改进的地方
比如:可扩展性/过度设计
——参考《构建之法》
作者:go4it
链接:https://www.jianshu.com/p/e65d83405914
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如何进行CodeReview的更多相关文章
- 【腾讯Bugly干货分享】让 CodeReview 这股清流再飞一会儿
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/ToYeT4Y4pzx0ii9Z92fo-Q 作者:刘 ...
- CodeReview Learning
目录 . 引言 . 代码检视的指导思想 . 代码检视的内容 . 回归测试 0. 引言 代码检视(Code Review)是指软件开发人员在完成代码设计.编写.调试后展开的个人或群体性的代码阅读过程,代 ...
- 分享总结:更好地CodeReview
代码质量分享 2016_06_24_舒琴_代码质量.key For 代码提交人 基本原则 Review时机: 对于普通bugfix或优化,CodeReview最迟要 ...
- codereview介绍
1. 定义: Code review is systematic examination (often known as peer review) of computer source code. I ...
- 关于CodeReview(java)(转)
关于codereview,在平时的开发中,经常忽略的环节,参照目前介绍写好代码的几本书和之前掉进的坑,做了一个总结,分享出来. 为什么要做 通过review规避一些代码层面的问题 提升可读性,方便后续 ...
- 自动化CodeReview - ASP.NET Core请求参数验证
自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 参数验证实现 在做服务端开发 ...
- 自动化CodeReview - ASP.NET Core依赖注入
自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 我个人比较懒,能自动做的事绝 ...
- CodeReview实践与总结
CodeReview 是大型软件工程中公认的必不可少的保证工程质量的重要手段之一.但凡正规软件作战军团都是非常重视 CodeReview 的作用和意义的.那么,如何做好 CodeReview 呢?这里 ...
- CodeReview常见代码问题
路线图 常见代码问题空值未捕获潜在的异常低性能影响范围过大单测问题与原有业务逻辑不兼容缺乏必要日志错误码不符合规范参数检测缺乏或不足引用错误细节错误多重条件文不符实跨语言或跨系统交互可维护性问题硬编码 ...
随机推荐
- 针对 Intellij IDEA 2018.2 版本 异常退出问题
原文:https://blog.csdn.net/weixin_41370091/article/details/81322694 近日刚安装好Intellij IDEA(2018.2 Ultimat ...
- Centos7下安装部署oracle数据库方法及问题汇总
目标:在centos7上配置oracle数据库服务器,并在win7上面使用pl/sql成功访问该oracle数据库 系统环境: 服务器:centos7 64位 客户端:win7 64位 注意cneto ...
- 理解Lambda表达式和闭包
了解由函数指针到Lambda表达式的演化过程 Lambda表达式的这种简洁的语法并不是什么古老的秘法,因为它并不难以理解(难以理解的代码只有一个目的,那就是吓唬程序员) #include " ...
- wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
http://blog.csdn.net/haoaiqian/article/details/58147079 80端口被占用的可能性非常大,关掉IIS即可
- 1. docker 在 macOS 中的架构 2. 在macOS系统中,docker pull 下来的镜像存储在哪里?
docker 在 macOS 中的架构: 在macOS中,docker的实现跟在其它Linux系统中略有不同,在其它Linux系统中,操作系统本身就是docker容器的宿主机,docker镜像都是直接 ...
- TypeScript 之 声明文件的发布
https://www.tslang.cn/docs/handbook/declaration-files/publishing.html 发布声明文件到npm,有两种方式: 与你的npm包捆绑在一起 ...
- Visual Studio Code 使用
VS Code 快捷键: 快捷键 作用 Option+Up 或 Option+Down 上下移动一行 Shift+Option+Up 或 Shift+Option+Down 向上向下复制一行 VS C ...
- RedHat6.5安装单机flume1.6
版本号: RedHat6.5 JDK1.8 apache-flume-1.6.0 1.apache-flume-1.6.0-bin.tar.gz 下载 官网下载地址:http://archiv ...
- c#根据手机号查归属地
可调用接口参考地址(没有免费的午餐): https://www.juhe.cn/docs/api/id/11 http://vip.showji.com/locating/?m=13606401549 ...
- SDI工程时钟路径分析
SDI工程时钟路径分析 //------------- Receive Ports - RX Fabric Output Control Ports ------------- output rxou ...