一、代码规范的要点

代码规范主要分为风格规范与设计规范两大类:

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的更多相关文章

  1. 【腾讯Bugly干货分享】让 CodeReview 这股清流再飞一会儿

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/ToYeT4Y4pzx0ii9Z92fo-Q 作者:刘 ...

  2. CodeReview Learning

    目录 . 引言 . 代码检视的指导思想 . 代码检视的内容 . 回归测试 0. 引言 代码检视(Code Review)是指软件开发人员在完成代码设计.编写.调试后展开的个人或群体性的代码阅读过程,代 ...

  3. 分享总结:更好地CodeReview

            代码质量分享    2016_06_24_舒琴_代码质量.key    For 代码提交人     基本原则 Review时机: 对于普通bugfix或优化,CodeReview最迟要 ...

  4. codereview介绍

    1. 定义: Code review is systematic examination (often known as peer review) of computer source code. I ...

  5. 关于CodeReview(java)(转)

    关于codereview,在平时的开发中,经常忽略的环节,参照目前介绍写好代码的几本书和之前掉进的坑,做了一个总结,分享出来. 为什么要做 通过review规避一些代码层面的问题 提升可读性,方便后续 ...

  6. 自动化CodeReview - ASP.NET Core请求参数验证

    自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 参数验证实现 在做服务端开发 ...

  7. 自动化CodeReview - ASP.NET Core依赖注入

    自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 我个人比较懒,能自动做的事绝 ...

  8. CodeReview实践与总结

    CodeReview 是大型软件工程中公认的必不可少的保证工程质量的重要手段之一.但凡正规软件作战军团都是非常重视 CodeReview 的作用和意义的.那么,如何做好 CodeReview 呢?这里 ...

  9. CodeReview常见代码问题

    路线图 常见代码问题空值未捕获潜在的异常低性能影响范围过大单测问题与原有业务逻辑不兼容缺乏必要日志错误码不符合规范参数检测缺乏或不足引用错误细节错误多重条件文不符实跨语言或跨系统交互可维护性问题硬编码 ...

随机推荐

  1. hdu1358 Period KMP

    给出一个字符串,找出所有可以作为它循环节的子串长度 利用kmp的失配数组的性质,可以直接做 #include<stdio.h> #include<string.h> ; cha ...

  2. MySQL Profiling--常用命令

    ##=====================================## ## 查看PROFILING是否开启 SELECT @@profiling ## 开始会话级别PROFILING # ...

  3. HDOJ 1297 Children’s Queue

    版权声明:来自: 码代码的猿猿的AC之路 http://blog.csdn.net/ck_boss https://blog.csdn.net/u012797220/article/details/3 ...

  4. js 控件样式显隐和赋值

    控制样式显示: $("#againMetting")[0].style.display = "inline";//显示 $("#againMettin ...

  5. 商品和订单中使用MQ

    一.将Product服务增加到配置中心 1.添加引用 <dependency> <groupId>org.springframework.cloud</groupId&g ...

  6. Redis sortedset有效集合数据结构

    1. 增加一个有效集合 2. 查看元素个数 3. zscore 4. zcount 5. 返回指定元素的索引 zrank 6.zincrby 给元素a加90分 7. zrange查看范围

  7. redis sentinel哨兵的使用

    哨兵模式是Redis集群管理的一种方式. 下面以Go语言为例介绍其使用方式. 使用举例 package main import ( "fmt" "strings" ...

  8. Spring Cloud(Dalston.SR5)--Eureka 服务提供者

    要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...

  9. zookkeper原理学习

    zookkeper原理学习  https://segmentfault.com/a/1190000014479433   https://www.cnblogs.com/felixzh/p/58692 ...

  10. 5V与3.3V电平互转

    参考: http://blog.sina.com.cn/s/blog_7880f98301014fmj.html