介绍
代码风格一切以可读性为前提,并尽量保持精简整洁,且让代码具有自说明(语义化)能力。
为了代码风格的统一,代码审查可通过内置在开发框架内的eslint+git-hooks给与编译时提示,在做代码合并时候,再由专人进行人工审核。
命名约定
最重要的一致性规则是命名管理,命名应采用同一种形式的格式,如驼峰或者下划线命名;
命名尽量语义化,应和具体的实体有关且精简,尽量缩写,但是不能盲目缩写;
通用命名规则:
- 函数命名、变量命名、文件命名应具有描述性,不要过度缩写,类型和变量应该是名词,函数名可以用“命令性”动词
- 尽可能给出描述性名称,不要节约空间,让别人很快理解你的代码更重要
- 命名尽量不出现数字,汉字等,特殊情况除外
特殊情况:
- 用英语无法准确表达
- 专业术语中含有数字
常用命名修饰符:public static final base private
文件、文件夹
文件和文件夹名要全部小写,可以包含下划线(_)或短线(-),按项目约定来,不能出现数字,汉字,驼峰,特殊情况 除外。例如:
aaa-bbb
,aaa_bbb
;
类
类型命名每个单词以大写字母开头,不包含下划线:MyExcitingClass、MyExcitingEnum。所有类型命名——类、结构体、类型定义(typedef)、枚举——使用相同约定。例如:
class UrlTable
,class UrlTableTester
,struct UrlTableProperties
变量
变量名一律小写,单词间以下划线相连,类的成员变量以下划线结尾,例如:
local_variable
,member_variable_
注意:
- 全局变量可以g_开头
- 变量命名不要用 is 做前缀,避免编译解析出错
常量
全局常量的命名采用字母全部大写,单词之间加下划线的方式,例如:
BASE_STATUS
,BASE_TYPE
局部的常量使用大驼峰命名方式,或者使用首字母大写与下划线组合的方式,例如:
Todo_Type
,TodoType
函数
函数、函数的参数或变量使用驼峰命名,且有意义,例如:
function getCode (codeType) {}
AddTableEntry()
命名空间
命名空间的名称是全小写的,其命名基于项目名称和目录结构,例如:
google_awesome_project
枚举命名
枚举值应全部大写,单词间以下划线相连:MY_EXCITING_ENUM_VALUE
枚举名称属于类型,因此大小写混合:UrlTableErrors
注释
使用 //
或 /* */
,统一就好。
一般情况下,代码部分采用 // 注释,说明性部分采用 /**/ 注释,
好的注释应提供设计意图、阐释、注意事项等,而不是写具体如何实现。
扩展:可使用 document.this
等注释插件进行注释;
空格
在函数和变量,操作符前后,参数之间,使用一个空格
排版规范
- 每一行代码字符数不超过80
- 使用4空格tab来缩进
- 一行代码只表达一个意图
- 每一个属性值必须添加分号
- 如果多个属性公用一个样式集,则多个属性必须写成多行形式
- 其它排版约定等...
错误处理/异常处理
- 对有能力处理的异常,尽量捕获并处理
- 处理采用相同的形式
其它
- 代码应高内聚低耦合,保证充分的复用性和扩展性
- 函数嵌套尽量不超过三层
- 变量命名不宜过长等
- if else 过多的情况应用设计模式来进行优化