1st-code-review summary
每次做code review,先贤谆谆教诲便在耳畔响起:
“There are only two hard problems in Computer Science: cache invalidation and naming things.” —Phil Karlton
将发现的问题整理如下:
Hard Code
这个永远是容易发现,也是最容易出现的问题,主要集中在 :
- 配置项
this.investmentList = [{
id: "ALL",
name: "All Investments"
}, {
id: "FE",
name: "ETF"
}, {
id: "FV",
name: "Insurance Product Fund"
}, {
id: "FO",
name: "Open-End Fund"
}, {
id: "SA",
name: "Separate Account"
}];
- Labels
if (data.length == 0) {
//message hard code
this.showMsgBox("No valid manager data available for the strategy.", true);
this.hideBodyEl();
}
- 逻辑标识
if (dataType == 1) { // dataType == what
//compare the number type
}
单var模式与多var模式
单var模式
在函数的顶部使用唯一一个var语句是非常推荐的一种模式,它有如下一些好处:
- 可以在同一个位置找到函数所需的所有变量
- 避免在变量声明之前使用这个变量时产生的逻辑错误(参考下一小节“声明提前:分散的var带来的问题”)
- 提醒你不要忘记声明变量,顺便减少潜在的全局变量
- 代码量更少(输入代码更少且更易做代码优化)
单var模式看起来像这样:
function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {},
i,
j;
// 函数体…
}
对于单 var 模式和多 var 模式,建议不做强行约定,但同一个文件里,风格必须一致。
命名规范
- 引入外部资源
- 应对引入的资源分组并以空行隔开,如mercury资源与mr资源,chartComponent资源与Grid资源,类与object...
- 类名大驼峰,变量小驼峰,常量全大写
- 不用给一些常用工具类起不同于exports的别名,如系统中是这样配置jquery,underscorejs
'jquery': {
deps: [],
exports: '$',
init: function() {
return this.$.noConflict();
}
},
'underscore': {
deps: [],
exports: '_',
init: function () {
return this._.noConflict();
}
}
- 方法名
- 方法名拼写错误,如restFilterOption..
- 太多的方法名以draw,load开头,有些名字不是很顾名思义
方法参数不需要带下划线
这一点我还没查到具体文档,待讨论
renderUI: function(_el) { //_el => el
_el.append(HTML);
this.initParam();
this._loadRequestParam();
this.drawHeader();
this._tableTemplate = null;
this._tableData = null;
}
多用$el.empty().append(value),少用$el.html(value)
$().html(value) vs $().empty().append(value)比较
refs :
single-var-mode
html-vs-empty-append
requireJs-config
Airbnb JavaScript Style Guide
1st-code-review summary的更多相关文章
- Git Command之Code Review
原文链接 准备 Step 1. Create a team and add a teammate Step 2. Create a repository with some content 应用 Cl ...
- 使用RBTool自动提交code review请求
使用RBTool自动提交code review请求 前言 让我们回想一下手工提交review请求的过程: 首先得用 svn diff > filename.diff 生成diff文件. 然后输入 ...
- Code Review学习笔记
一:Code Review的必要性 代码审查,可以帮助他人发现不足,也可以促进自己培养良好的编程习惯. 自我代码审查,可以在编码完成之后,对自己的代码进行整理,发现“味道不好”的代码,作进一步的调整. ...
- Jupiter Code Review Reference -- Jupiter代码审查工具使用参考
Jupiter Code Review Reference -- Jupiter代码审查工具使用参考 (修改版) 原创 2010年07月06日 10:43:00 标签: 审查 / reference ...
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- Git和Code Review流程
Code Review流程1.根据开发任务,建立git分支, 分支名称模式为feature/任务名,比如关于API相关的一项任务,建立分支feature/api.git checkout -b fea ...
- 如何搭建开源code review gerrit服务器
搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...
- Code Review Tools
Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻 ...
- code review作业
下面是对结对编程队友12061166 宋天舒的code review 五个优点: 1.代码的风格优秀,注释不多,但是必要的注释还是有的,比如: // 三种模式 // mode1仅统计单个单词 // m ...
随机推荐
- hdu 1166 线段树单点更新
等线段树复习完再做个总结 1101 2 3 4 5 6 7 8 9 10Query 1 3Add 3 6Query 2 7Sub 10 2Add 6 3Query 3 10End Case 1:633 ...
- 操作JNI函数以及复杂对象传递
转自:http://blog.csdn.net/qinjuning/article/details/7607214 在掌握了JNI函数的使用和相关类型的映射后,以及知晓何利用javah工具生成对应的j ...
- C编译: 动态连接库 (.so文件)
转自:http://www.cnblogs.com/vamei/archive/2013/04/04/2998850.html 在“纸上谈兵: 算法与数据结构”中,我在每一篇都会有一个C程序,用于实现 ...
- ubuntu apt-get 总结 install xxx -d能下载安装包(含依赖)不安装_和卸载(转载)
[举例] 目前常用的 ========== *更新本机中的数据库缓存: sudo apt-get update *查找包含部分关键字的软件包: sudo apt-cache search <你要 ...
- C++ Primer与c++编程思想的比较(转)
C++primer是最经典的c++教材之一,它的经典程度要超过thinking in c++.连thinking in c++作者本人都说他写这本书在某种程度上是让读者更好的理解C++primer.但 ...
- 【bzoj1066】[SCOI2007]蜥蜴 网络最大流
[bzoj1066][SCOI2007]蜥蜴 Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的 ...
- Android 在布局容器中动态添加控件
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 Wa ...
- 逆序数 POJ 2299 Ultra-QuickSort
题目传送门 /* 题意:就是要求冒泡排序的交换次数. 逆序数:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序. 一个排列中逆序的总数就称为这个排列的逆 ...
- 贪心 POJ 2586 Y2K Accounting Bug
题目地址:http://poj.org/problem?id=2586 /* 题意:某公司要统计全年盈利状况,对于每一个月来说,如果盈利则盈利S,如果亏空则亏空D. 公司每五个月进行一次统计,全年共统 ...