研发代码规范
java代码基础规范主要参照 阿里巴巴Java开发手册(详尽版).pdf
推荐阅读书籍 重构-改善既有代码的设计.pdf
简化版规范如下:
开发理念
- 用心写代码,提炼真正的非功能性需求。
- 代码整洁干净到极致, 请参见《重构》和《代码整洁之道》。
- 极简代码, 高度复用,无重复代码和配置。
- 代码应在同一抽象层级。
- 修改功能时多考虑影响面, 不可留下没修改完全的部分。
- 只有一个需求时,不需扩展性。两个类似需求时, 再提炼扩展性。
开发行为规范
- 提交之前先确定模块的测试套件,并使用测试覆盖率工具检查覆盖率不能低于master分支的覆盖率。
- commit代码的注释,必须需要写清楚提交内容,不要写修改功能、修复问题。一般来说,commit message 应该清晰明了,说明本次提交的目的。
- 使用阿里巴巴插件检查代码
- 执行mvn clean install可以测试和编译通过。
- 及时删除无用代码。
编码规范
- 写代码之前看一下系统已有的代码, 保持风格和使用方式一致。
- 变量命名要有意义, 如果方法只有唯一的返回值, 使用result命名返回值. 循环中使用each命名循环变量, map中使用entry代替each。
- 嵌套循环尽量提成方法。
- 优先使用卫语句。
- 配置文件使用驼峰命名, 文件名首字母小写。
- 类和方法的访问权限控制为最小, 例如: 可以设为包私有的就不用public。
- 方法所用到的私有方法应紧跟着该方法, 如果有多个私有方法, 书写私有方法应与私有方法在原方法的出现顺序相同。
- 优先使用guava而非apache commons, 如:优先使用Strings而非StringUtils。
- 优先使用lombok代替构造器, get, set, log方法。
- 使用linux换行符。
- 缩进(包含空行)和上一行保持一致。
- 不应有无意义的空行。
- 方法入参和返回值不允许为null,如有特殊情况需注释说明。
- 需要注释解释的代码尽量提成小方法,用方法名称解释,注释应只包含javadoc和todo,fixme等。
- 禁止使用static import。
- 不需要公开的类放入internal包,包中类尽量包私有。
- 日志一律使用英文。
- 使用annotation获取spring的业务bean。
- 如果模块中有公用的切入点,应在模块一级路径创建pointcut包。
- 属性配置项需要添加到各个模块的常量枚举中。