## Java后端代码规范 (来源:阿里巴巴Java开发手册 1.3.0) ### 1命名风格 **1.1**类名采用使用 UpperCamelCase (首字母大写)风格,遵守驼峰命名形式,但以下情况例外:DO / BO / DTO / VO / AO **1.2**方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式 **1.3**常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长 **1.4**抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 **1.5**对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部实现类用 Impl 的后缀与接口区别。 **1.6**各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的方法用 get 做前缀。 2) 获取多个对象的方法用 list 做前缀。 3) 获取统计值的方法用 count 做前缀。 4) 插入的方法用 save/insert 做前缀。 5) 删除的方法用 remove/delete 做前缀。 6) 修改的方法用 update 做前缀。 注意: - 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 - POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 - 常量都必须是 static final 成员,但并不是所有的 static final 成员都是常量。 - 不要使用类似 C 语言的数组变量声明。 ## 2代码风格 **2.1**大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则: 1) 左大括号前不换行。 2) 左大括号后换行。 3) 右大括号前换行。 4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。 **2.2**if/for/while/switch/do 等保留字与括号之间都必须加空格。 **2.3**采用 4 个空格缩进,如果使用 tab 字符需要设置4空格缩进 ## 前端Typescript代码规范(来源Typescript使用手册) #### 命名 1. 使用PascalCase为类型命名。 2. 不要使用`I`做为接口名前缀。 3. 使用PascalCase为枚举值命名。 4. 使用camelCase为函数命名。 5. 使用camelCase为属性或本地变量命名。 6. 不要为私有属性名添加`_`前缀。 7. 尽可能使用完整的单词拼写命名。 #### 类型 1. 不要导出类型/函数,除非你要在不同的组件中共享它。 2. 不要在全局命名空间内定义类型/值。 3. 共享的类型应该在`types.ts`里定义。 4. 在一个文件里,类型定义应该出现在顶部。 #### `null` 和 `undefined`: 1. 使用 **undefined**,不要使用 null。 #### 风格 1. 使用arrow函数代替匿名函数表达式。 2. 只要需要的时候才把arrow函数的参数括起来。 比如,`(x) => x + x`是错误的,下面是正确的做法: 3. `x => x + x` 4. `(x,y) => x + y` 5. `(x: T, y: T) => x === y` 6. 总是使用`{}`把循环体和条件语句括起来。 7. 开始的`{`总是在同一行。 8. `for (var i = 0, n = str.length; i < 10; i++) { }` 9. `if (x < 10) { }` 10. `function f(x: number, y: string): void { }` 11. 每个变量声明语句只声明一个变量 (比如 使用 `var x = 1; var y = 2;` 而不是 `var x = 1, y = 2;`)。 12. `else`要在结束的`}`后另起一行。