Java Coding Rules - shenliuyang/development GitHub Wiki

Java编程守则

本篇作为对Java Coding Standard的补充,开发人员必须遵守,请认真对待。

代码注释规则

  • 所有的代码注释都要包含作者,修改其他人的代码必须注明修改者,如果只增加一个方法,则必须在方法注释前增加作者,增加作者使用标准的注释"@author"。
  • 所有IDE生成的无用注释都必须进行修改或删除,例如Auto Generated …,Created by Idea等等。
  • 所有的Domain-Object和Dto类对象必须包含toString方法,属性必须有注释,所有会用在Set或Map的Key的DomainObject必须实现hashcode和equals方法。
  • 所有的类和类内的方法都要标明注释,说明业务意义,使用较复杂的需要说明使用方法。

Dao规则

  • Dao的接口命名使用XXXDao,Hibernate实现类使用XXXDaoHibernate命名;
  • Dao内的查询方法统一使用getXXXByProperty的方式命名,如果有关联对象一同取出的,使用getXWithY命名,并必须在注释中加以说明;
  • Dao内的方法通常是以此Dao关联的DomainObject(例如from关键字后跟随的DomainObject,或select后跟的DomainObject,当两者遇到冲突时,以后者优先)为查询主体的方法;

Service层规则

  • Service的接口命名使用DomainObjectManager命名,实现类使用XXXManagerImpl命名。
  • Service内的方法命名使用带有业务含义的英文命名;
  • 获取统计类的信息(count, sum)应使用新的Service,例如OrderManager和OrderStatManager。

Dao,Service和Web Action的测试规则

Dao,Service和Action层都需要有单元测试,单元测试必须包含Assert断言,不能包含的必须在注释中说明原因,Assert的断言必须增加描述信息,例如:
Assert.assertFalse("获取的订单列表不能为空", orders.isEmpty());

打印输出规则

虽然Logger一篇中已经讲述了代码中不允许使用System.out和e.printStackTrace,必须使用logger.debug/info/warn/error来打印输出,但各个开发人员仍然屡犯不止,在此再次强调一下,必须使用logger来打印输出。

  1. DEBUG 开发周期调试日志。
    1. 记录查询条件,查询结果数量,查询结果等。
  2. INFO 重要信息记录日志
    1. 记录新增,修改,删除等信息。
  3. WARN 警告信息记录日志
    1. 记录出现非预期结果信息。
  4. ERROR 错误信息记录日志
    1. 所有异常信息统一采用error输出

建立SessionFacade层,统一调用各个Service,提供前台综合性的业务接口

SessionFacade层统一为Web Action或WebService层服务,可调用多个Service,实现Action和WebService层的目标。

SessionFacade层应以XXXFacadeManager命名接口,XXXFacadeManagerImpl命名实现,例如OrderFacadeManager和OrderFacadeManagerImpl

⚠️ **GitHub.com Fallback** ⚠️