Code Review 规范
CodeReview规范
CodeReivew 标准
通用原则
- 提交 PR 的代码必须保证自测通过
- 只 review 代码规范、业务逻辑,不 review 架构设计(那是写代码前应该做的事情)
- 干掉重复代码,合理复用代码
- 合理命名变量、函数、API 的名字(具体参考各语言规范)
- 删除无用代码(包括以后可能会用的代码,用时再加入)
- 重要函数入口、复杂的业务逻辑要有注释(注释标准见各语言规范)
Python 代码规范
- https://guoruibiao.gitbooks.io/effective-python/content/
Java 代码规范
- Java 命名规范 参见[ google java style ]
- 1为统一所有同事的代码格式,需要安装IDE的plugin 来强制格式化文件(具体,参见 https://github.com/google/google-java-format)
Java Code 实现规范
谨慎使用接口,如无必要,不必抽象
接口的使用有一些场景:
- 抽象公共的行为 (要求有至少2个实现)
- 使用JDK 原生的Proxy
- 定义框架扩展点
不满足以上场景,不必抽象
尽量使用公共组件库,强烈不推荐自己实现Utility(如guava/apache commons)
尽量使用异常,避免错误码
参数验证尽量前置
时间统一返回成long (毫秒级)
对float/double 精度问题保持警惕
尽量使用JDK lambda
- Java 命名规范 参见[ google java style ]
Code Review 规范的更多相关文章
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- code review作业
下面是对结对编程队友12061166 宋天舒的code review 五个优点: 1.代码的风格优秀,注释不多,但是必要的注释还是有的,比如: // 三种模式 // mode1仅统计单个单词 // m ...
- Code Review 五问五答
Code Review 是什么? Code Review即代码审查,程序猿相互审核对方的代码. Code Review能获得什么好处? 提高代码可维护性 你写的代码不再只有编译器看了,你得写出审核人能 ...
- 大家是怎么做Code Review的?
先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...
- 近期code review几处小问题集锦
1 线程池使用不当 我们的调度系统需要将一堆会员分配给相应的人员来处理,流程如以下伪代码所示: public void dispatch() { while (true) { List<Memb ...
- <转>如何进行code review
转自: http://pm.readthedocs.org/zh_CN/latest/codereview/howto.html 如何进行code review? code reivew是保障代码质量 ...
- Code Review Engine Learning
相关学习资料 https://www.owasp.org/index.php/Code_review https://www.owasp.org/images/8/8e/OWASP_Code_Revi ...
- [充电]Code Review
参考:http://blog.jobbole.com/83595/ http://www.kuqin.com/shuoit/20150319/345323.html 让 Code Review成为一种 ...
- Code Review的一些典型内容
如下是Code Review中一些典型的内容: 一.常规项: 1.代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. 2.所有的代码是否简单易懂? 3.代码符合你所遵循的编程规范么?这通常包括大 ...
随机推荐
- Codeforces 946 B.Weird Subtraction Process
B. Weird Subtraction Process time limit per test 1 second memory limit per test 256 megabytes inpu ...
- Java并发编程实战 读书笔记(一)
最近在看多线程经典书籍Java并发变成实战,很多概念有疑惑,虽然工作中很少用到多线程,但觉得还是自己太弱了.加油.记一些随笔.下面简单介绍一下线程. 一 线程与进程 进程与线程的解释 个人觉 ...
- deferred 对象
转载,原文连接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html ...
- Scut游戏服务器免费开源框架--快速开发(1)
Scut快速开发(1) 1 开发环境 需要安装的软件 a) VS2010开发工具(.Net Framework 4.0以上) 2 HelloWorld 2.1 ...
- js:深入继承
/** * js实现继承: * 1.基于原型链的方式 * 2.基于伪造的方式 * 3.基于组合的方式 */ 一.基于原型链的方式 function Parent(){ this.pv = ...
- Java基础:抽象类和接口
转载请注明出处:jiq•钦's technical Blog 一.引言 基于面向对象五大原则中的以下两个原则,我们应该多考虑使用接口和抽象类: 里氏替换原则:子类能够通过实现父类接口来替换父类,所以父 ...
- mysql 分表的3种方法
http://blog.51yip.com/mysql/949.html CSDN - Mysql MERGE分表对大数据量的处理 实战经验: 要分表的表引擎必须是myisam类型 ...
- idea安装plugin
---恢复内容开始--- ---恢复内容结束---
- 设置Ubuntu 16.04 LTS的Unity启动器的位置命令
将Ubuntu 16.04 LTS的Unity启动器移动到桌面底部命令:gsettings set com.canonical.Unity.Launcher launcher-position Bot ...
- Django知识梳理
请求周期: url > 路由 > 函数或类 > 返回字符串或模板语言 Form 表单提交: 先处理模板语言再讲HTML发出去 提交 > url > 函数或类中的方法 — ...