1. java包名名应该用小写字母,如cn.com.servyou.etrs.service.qa,而不是cn.com.servyou.etrs.service.QA,模块对应分三层,controller/service/repository(dao),每层应该统一。
2. 异常处理在统一的异常处理类中实现,不需要为每个方法独自写,参考http://blog.youkuaiyun.com/linwei_1029/article/details/41674767
a. 定义统一的BizException类,继承自RuntimeException而不是检查式异常Exception。BizException中应包含code, message属性。
b. 异常采用统一编码的code放在properties文件中,并和message对应,参考http://blog.youkuaiyun.com/jiana227/article/details/23252593
c. 避免抛出通用异常类型如Exception, 避免e.printStackTrace(),采用log记录
3. 采用接口式编程,spring中定义的service都必须有接口类,如IQaService,实现类为QaServiceImpl,而不是直接采用实现类,参考设计模式中的策略模式。
4. 对象vo统一放入vo目录,不要分散在各个地方,特别不要放到其他模块中。
5. 传参时尽量传包装过的一个对象,减少接口改动的可能性,如qaService.analysisPaper(paperRequest.getPaperId(),paperRequest.getQuestionAnswers())中的参数可以合并到一个对象中,参考vo模式。
6. 采用功能性编程,功能类写成spring service,如PaperAnalysis,其中不要包含全局变量questions或构造函数,将questions作为参数传入方法即可。
7. 不要用System.out.println();采用log.debug代替。