1、前端代码规范 https://github.com/ecomfe/spec 1.1 缩进与换行 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。 1.2 命名 class 必须单词全字母小写,单词间以 - 分隔。 class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。 元素 id 必须保证页面唯一。 id 建议单词全字母小写,单词间以 - 分隔。同项目必须保持风格一致。 id、class 命名,在避免冲突并描述清楚的前提下尽可能短。 1.3 DOCTYPE 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE。 1.4 编码 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。 1.5 标签 标签名必须使用小写字母。 对于无需自闭合的标签,不允许自闭合。 标签使用必须符合标签嵌套规则。 HTML 标签的使用应该遵循标签的语义。 1.6 属性 属性名必须使用小写字母。 属性值必须用双引号包围。 2、后端代码规范 https://github.com/alibaba/p3c 2.1 命名 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。 2.2 代码格式 如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块则: 左大括号前不换行。 左大括号后换行。 右大括号前换行。 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。 if/for/while/switch/do 等保留字与括号之间都必须加空格。 采用 4 个空格缩进,禁止使用 tab 字符。 注释的双斜线与注释内容之间有且仅有一个空格。 2.3 OOP规约 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。 所有的覆写方法,必须加@Override 注解。 所有整型包装类对象之间值的比较,全部使用 equals 方法比较。 浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断。 定义数据对象 DO 类时,属性类型要与数据库字段类型相匹配。 2.4 控制语句 在一个 switch 块内,每个 case 要么通过 continue/break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。 在 if/else/for/while/do 语句中必须使用大括号。 2.5 注释规约 类、类属性、类方法的注释必须使用 Javadoc 规范,使用/*内容/格式,不得使用// xxx 方式。 所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。