- 【Java命名规范】【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
反例: _name / __name /Object/name/name/ Object$
- 【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意, 即使纯拼音命名方式
也要避免采用。
反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 变量 = 3;
正例: ali / alibaba / taobao / cainiao / aliyun / youku / hangzhou 等国际通用的
名称,可视为英文。
- 【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型
的相关命名) DO / DTO / VO / DAO 等。
正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例: macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
- 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从
驼峰形式。
正例: localValue / getHttpMessage() / inputUserId
- 【 强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例: MAX_STOCK_COUNT
反例: MAX_COUNT
- 【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命
名以它要测试的类的名称开始,以 Test 结尾。
如:
AbstractDemo //抽象类
ArithmeticException //运算错误异常类
DemoTwoTest//测试类
- 【强制】中括号是数组类型的一部分,数组定义如下: String[] args;
反例: 请勿使用 String args[]的方式来定义
- 【强制】 POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错
误。
反例: 定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(), RPC
框架在反向解析的时候, “ 以为” 对应的属性名称是 success,导致属性获取不到,进而抛出
异常。
- 【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用
单数形式,但是类名如果有复数含义,类名可以使用复数形式。
正例: 应用工具类包名为 com.alibaba.mpp.util、类名为 MessageUtils (此规则参考 spring
的框架结构)
/—————-over———–/