如何进行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常见代码问题
路线图 常见代码问题空值未捕获潜在的异常低性能影响范围过大单测问题与原有业务逻辑不兼容缺乏必要日志错误码不符合规范参数检测缺乏或不足引用错误细节错误多重条件文不符实跨语言或跨系统交互可维护性问题硬编码 ...
随机推荐
- using python to compute production rules
#coding=utf8 import loggingimport itertoolsimport reimport sys logger = logging.getLogger()root_form ...
- JAVA静态代码块的作用
一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种 ...
- Linux 定时任务crontab使用
正好要搞一个定时删除数据的功能,想到linux 可设置定时器定时执行任务就学习了下~ 并不是所有的linux服务器上都装了crontab 像我这: [root@hehe local]# crontab ...
- VS 中的几种注释方法
在代码的后面添加形如下面注释: //TODO: (未实现)…… //UNDONE:(没有做完)…… //HACK:(修改)…… 等到再次打开VS的时候,找到 :视图>任务列表 即可显示所有带有T ...
- 20165308 2017-2018-2 《Java程序设计》第四周学习总结
20165308 2017-2018-2 <Java程序设计>第四周学习总结 知识点 第五章 1.子类声明中通常用关键字extend来定义一个子类. 2.子类和父类在同一包中的继承性,继承 ...
- Revit 开发将自己的窗口设置为Revit窗口
在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,To ...
- openLayer3地图的使用心得
准备运行环境: 1)Portable Basemap Server(PBS)用于创建地图服务 官网网址:http://geopbs.codeplex.com/ 如何创建底图服务?操作步骤如下: 如果启 ...
- pandas初识
pandas初识 1.生成DataFrame型的数据 import pandas as pd import numpy as np dates = pd.date_range('20130101',p ...
- http修改443端口,http 强制跳转https
修改apache http/https 端口号 1.修改http的端口 打开$HTTPD_HOME/conf/httpd.conf文件,找到Listen,后面紧跟的是端口号,默认是80,把它修改为你想 ...
- linux新手非常有用的20个命令
引用:http://www.oschina.net/translate/useful-linux-commands-for-newbies 1. ls命令 ls命令是列出目录内容(List Direc ...