命名规范
代码中命名通常以英文单词驼峰命名,禁止使用拼音英文混合或使用中文方式,即使纯拼音命名方式也应尽量避免采用【强制】
不得以下划线或美元符号开始或结尾,反例:_name / $name / name_ / name$.
项目命名:
项目名称由全英文小写单词组成,单词间使用中划线分隔,不宜过长大于15个字符时可适当使用缩写,不得与其他项目冲突。示例:spring-webmvc;
包命名:
全英文小写;
格式:产品所属公司域名反向+项目名+业务分层;如:com.ghgcn.activity(正品创想公司活动系统项目),com.ghgcn.activity.dao。前3层为固定,第四层后根据项目自定。
类命名
a)全英文驼峰命名法,首字母大写。大于15字符时允许使用缩写。示例:HashMap;
b)接口,首字母以I开头。I即interface,明确表示该类为接口,如是远程接口实现使用IR开头。示例:IShopDao,IRuserService;【推荐】
c)抽象类,以Base或Abstract开头。示例BaseService,AbstractService;
d)测试类以Test结尾;
e)异常类以Exception结尾。示例:DataAccessException;
f)静态工具类为以utils或helper结尾,优先使用utils有命名冲突时使用helper。示例:StringHelper,ClassUtils;
g)领域模型相关类,实体类entity,数据表名单词转驼峰命名SHOP_USER => ShopUser。数据传输对象可带DTO,页面展示对象VO【推荐】;
- dao层接口:实体名+Dao,Mybatis可使用实体名+Mapper,示例:IShopUserDao,IShopUserMapper;
- service层接口:实体名+Service。示例:IShopUserService;
- controller层:实体名+Controller。示例:DictionaryController;
h) 接口实现类:实体名+ServiceImpl,例如:DictionaryServiceImpl。
必须放于子包impl中;
i) 枚举类建议带上Enum结尾,枚举成员大写单词间用下划线隔开。【推荐】示例:UserTypeEnum 成员SALES,SYS_ADMIN
j) 如果使用到了设计模式,建议在类名中体现出具体模式。【推荐】
说明: 将设计模式体现在名字中,有利于阅读者快速理解架构设计思想。
示例: public class OrderFactory;public classLoginProxy;
方法、变量、参数命名
a) 驼峰命名法,首字母小写,力求语义表达完整清楚,尽量不使用缩写;
不要与类成员变量同名(get/set方法与构造函数除外),变量与参数前不允许带类型标识,反例: int icount / float fcount;
b) 布尔型成员变量禁止以is开头,因为布尔型getter方法可以是isXXX(),可能导致异常;
c) 集合、数组类型使用复数
示例:
private String userName;
private void createBean(String beanName);
private boolean success;
常量命名
常量命名全部大写,单词间用下划线隔开。示例:final int MAX_COUNT=1;
文件命名
文件及文件夹均使用小写字母命名,单词间以下划线_分隔;
页面按照名词+动词/描述命名,如news_add.jsp/ news_list.jsp