1. 必须要有缩进,且使用 tab
缩进,不要用空格或手动缩进,喜欢 2 空格、4 空格,还是别的,交给 IDE 去自定义;
2. 必须要用编辑器的代码格式化功能对代码进行格式化之后才能提交;
3. 除了 return
、null
、boolean
和抛异常外,所有 if
、else
等操作全部要加大括号,如:
if (condition) return; √
if (condition) return true; √
if (condition) nextStep(); X
if (condition) { √
nextStep();
}
4. 如果 if
、else
不加括号,则必须写在一行内,如:
if (condition) return; √
if (condition) X
return;
if (condition) X
nextStep();
5. 除非有特殊需求,不要使用 switch
贯穿 ,要使用 switch
贯穿 时,必须申报理由;
6. 所有命名空间、类、方法、变量名都尽量采用英语,而不要用汉语拼音;
7. 命名空间名、包名、文件夹名,全部采用小写字母,有多个词时用下划线连接,如:demo_namespace
;
8. 模块名、类名等采用驼峰命名,整体词性为名词,并且首字母大写,如:ThisIsDemo
;
9. 函数名、方法名等整体词性为动词,并且首字母小写,如:getSomething()
;
10. 代码中要有一定量的注释,但不要满篇废话,尽量做到自注释,具体的注释规范参考:代码注释规范;
11. 不要使用魔法数字,而采用统一信息编码,具体信息编码参考:信息编码表;
12. 拼写可以用缩写的地方就用缩写,不要太长,缩写对应表参考:缩写对应表;
13. 尽量不要用 switch case
来描述可扩展的业务逻辑,通过依赖注入
等其他方式来实现替代;
14. 所有大括号在换行时,一律不要在最前,写在行最后,如:
if (condition()) X
{
nextStep();
}
if (condition()) { √
nextStep();
}
15. 代码中不要出现两个效果、功能完全一致的库,比如 moment
库和 dayjs
库;
16. 同样的功能,代码形式要完全一致,如:
const str1 = Vue.ls.get("NAME");
const str2 = this.$ls.get("NAME"); X
const str = Vue.ls.get("NAME"); √
17. 基础业务的框架性代码,要尽量常量化,比如全国的省市行政区划等;
18. 具体的业务性代码和基础业务的框架性代码要分开处理,不得混杂在一起;
19. 所有时间全用毫秒级时间戳来表达,禁止使用任何原生的时间类型格式;
20. 所有关于时间统一律采用毫秒级的时间戳,以 JS 为例是:Date.getTime()
、Date.now()
;
全称 | 缩写 |
---|---|
absolute | absl |
address | addr |
array | arr |
attribute | attr |
business | biz |
check | chk |
copy | cpy |
control | ctl / ctrl |
controller | ctlr / ctrler |
expand | epd |
extend | ext |
flag | flg |
implement | impl |
length | len |
list | lst |
move | mv |
object | obj |
property | prop |
string | str |
temp | tmp |
template | tmpl |
text | txt |
value | val |