Java代码规范编码规约
一、命名规范 1.【强制】 严禁在代码中的命名使用拼音缩写 反例: BaoDan[保单]/ getBaoDanInfo()[获取保单信息] 二、格式规范 1.【强制】 使用同一的代码格式模板,基于IDE自动的格式化 三、注释规范 1.【推荐】 基本的注释要求 1) 注释需要准确的反映设计思想及代码逻辑 2)公共的方法或抽象类的方法,尽可能描述清楚:输入、输出、错误处理和返回码、以及可能抛出的异常。 3) 能够描述出业务的具体含义,使得读者能够快速了解代码背后的信息。 四、方法设计 1.【推荐】 方法的长度限制方法尽量不要超过100行,需要注意的是方法长度超过8000个字节码时,将不会被JIT编译成二进制码。 五、类设计 1.【推荐】 类成员与方法的可见性最小化任何类、方法、参数、变量,严控访问范围。过于宽泛的访问范围,不利于模块解耦。思考:如果是一个private的方法,想删除就删除,可是一个public的service方法,或者一个public的成员变量,删除一下。例外:为了单元测试,有时也可能将访问范围扩大,此时需要加上JavaDoc说明 Java代码规范编码规约是确保代码可读性、可维护性和团队协作的重要准则。下面将详细阐述其中的关键点。 **命名规范** 1. **禁止使用拼音缩写**:避免使用像`BaoDan`和`getBaoDanInfo`这样的拼音缩写,这可能导致代码难以理解,应该使用英文全称,例如`InsurancePolicy`和`getInsurancePolicyInfo`。 2. **禁用非标准英文缩写**:避免非标准的英文缩写,如`AbsClass`代替`AbstractClass`,`condi`代替`condition`。应使用完整的英文词汇。 3. **包名全小写**:包名应由小写字母组成,使用点分隔符,每个分隔符之间只包含一个英语单词,避免使用下划线或大小写分隔。 4. **命名规则**:方法名、参数、成员名、局部变量采用驼峰命名法,如`getUserInfo`和`localValue`。类名和接口名使用UpperCamelCase风格,例如`UserId`和`UserService`。 5. **常量命名**:常量全用大写字母,单词间用下划线分隔,如`MAX_STOCK_COUNT`。对于非基本类型的static final字段,可不遵循此规则。 6. **设计模式体现**:如果使用到设计模式,类名中应体现,如`OrderFactory`、`LoginProxy`和`ResourceObserver`。 7. **枚举命名**:枚举类名以`Enum`结尾,例如`DealStatusEnum`。异常类以`Exception`结尾,测试类以测试目标类名开头并以`Test`结尾。 8. **实现类命名**:实现类通常以`Impl`作为后缀,如`CacheServiceImpl`。 9. **POJO类布尔变量**:布尔类型的变量名不要以`is`开头,以免引起序列化问题。 **格式规范** 1. **使用统一的代码格式模板**:IDE默认的代码格式模板可以简化大部分格式规范,新接手的项目应进行一次全面格式化,以保持一致性。 2. **编码格式**:设置IDE的文本文件编码为UTF-8,文件换行符使用Unix格式。 3. **运算符优先级**:使用小括号明确运算符优先级,如`(a == b) && (c == d)`。 4. **方法定义顺序**:构造方法先于其他方法,公有、保护和私有方法按顺序排列,getter/setter方法最后。多参数构造方法和重载方法按参数数量降序排列。 5. **逻辑分段**:使用空行区分逻辑段,如变量声明。 6. **注释控制**:特殊情况下,使用`@formatter:off`和`@formatter:on`避免IDE自动格式化。 **注释规范** 1. **注释要求**:注释需准确反映设计意图和代码逻辑。公共方法和抽象类方法需详述输入、输出、错误处理、返回码和可能抛出的异常。注释应有助于理解业务含义。 2. **清晰代码优于注释**:优先考虑通过优化代码结构、命名和函数设计来减少对注释的依赖。 通过遵循这些编码规约,开发者可以创建出易于理解、维护和扩展的Java代码,从而提高团队的生产力和软件质量。