Java Coding Rules - shenliuyang/development GitHub Wiki
本篇作为对Java Coding Standard的补充,开发人员必须遵守,请认真对待。
- 所有的代码注释都要包含作者,修改其他人的代码必须注明修改者,如果只增加一个方法,则必须在方法注释前增加作者,增加作者使用标准的注释"@author"。
- 所有IDE生成的无用注释都必须进行修改或删除,例如Auto Generated …,Created by Idea等等。
- 所有的Domain-Object和Dto类对象必须包含toString方法,属性必须有注释,所有会用在Set或Map的Key的DomainObject必须实现hashcode和equals方法。
- 所有的类和类内的方法都要标明注释,说明业务意义,使用较复杂的需要说明使用方法。
- Dao的接口命名使用XXXDao,Hibernate实现类使用XXXDaoHibernate命名;
- Dao内的查询方法统一使用getXXXByProperty的方式命名,如果有关联对象一同取出的,使用getXWithY命名,并必须在注释中加以说明;
- Dao内的方法通常是以此Dao关联的DomainObject(例如from关键字后跟随的DomainObject,或select后跟的DomainObject,当两者遇到冲突时,以后者优先)为查询主体的方法;
- Service的接口命名使用DomainObjectManager命名,实现类使用XXXManagerImpl命名。
- Service内的方法命名使用带有业务含义的英文命名;
- 获取统计类的信息(count, sum)应使用新的Service,例如OrderManager和OrderStatManager。
Dao,Service和Action层都需要有单元测试,单元测试必须包含Assert断言,不能包含的必须在注释中说明原因,Assert的断言必须增加描述信息,例如:
Assert.assertFalse("获取的订单列表不能为空", orders.isEmpty());
虽然Logger一篇中已经讲述了代码中不允许使用System.out和e.printStackTrace,必须使用logger.debug/info/warn/error来打印输出,但各个开发人员仍然屡犯不止,在此再次强调一下,必须使用logger来打印输出。
-
DEBUG 开发周期调试日志。
- 记录查询条件,查询结果数量,查询结果等。
-
INFO 重要信息记录日志
- 记录新增,修改,删除等信息。
-
WARN 警告信息记录日志
- 记录出现非预期结果信息。
-
ERROR 错误信息记录日志
- 所有异常信息统一采用error输出
SessionFacade层统一为Web Action或WebService层服务,可调用多个Service,实现Action和WebService层的目标。
SessionFacade层应以XXXFacadeManager命名接口,XXXFacadeManagerImpl命名实现,例如OrderFacadeManager和OrderFacadeManagerImpl