6月22日项目CodeReview问题及总结

后台代码部分
1. 枚举类的使用:当定义的某个字段有多种状态值或表示值时,能够建立一个枚举类将全部状态表示出来,并供其余使用到该字段的方法统一调用。枚举类定义可参考 '/banking-dbbp-product-comp/src/main/java/com/vivebest/banking/dbbp/product/comp/Enums/ProductTypeEnum.java'。
2. 异常处理,在调用其它项目接口时必定要进行异常处理,在抛出异常时须要使用logger.info()对异常进行打印,异常处理格式以下
 
3. 日志打印不用转换成json对象再输出,若是是打印实体类对象在编写时直接构建toString()方法便可,方式是 右键实体类--> Source --> Generate toString()。
4. 后台日志打印主要有info和debugger两种形式,在进入后台Action时使用logger.info()打印信息,在抛出异常前使用logger.info()打印信息,调用其它方法是使用logger.debugger()来打印信息。info主要是用来判断参数信息是否正确,debugger主要用来查看程序走到了哪一步。
5. 打印日志时要使用占位符‘,’,不建议使用字符串拼接‘+’的形式,使用‘+’是字符串拼接,会浪费系统资源,后期调整为error级别时,仍会进行字符串的运算,在进行压力测试的时候或者是高并发的状况下,影响系统的性能。使用‘{}’符进行占位,效率比较高,方便往后日志筛选与查看。
6. 自定义异常处理时,异常的定义要规范化,同时要包含必定的业务含义,使代码具备可读性。
7. 有返回值的实体类或者List和Map都不能使用New()操做,直接在定义时直接初始化=null便可,如: List resultList = null或者直接 List<PublishAuditor> resultList = publishAuditorService.query(publishAuditor);使用New()操做会消耗额外资源。
8. 删除操做、插入操做和更新操做都不须要有返回值接收,查询操做时选择适当的容器来进行接收查询数据。
9. 日期类型的转换有公共的Utils类中有方法能够直接调用,能够避免手写转换,在第三方jar包 org.apache.http.client.util.DateUtils中可直接时候,使用方法为 Date date = DateUtils.parseDate()。
10. 在Action执行完数据库操做后向前台返回数据时,不须要手动自定义标识符,系统框架会自动返回前台可识别的标识符。不须要特地putResponse出执行成功或失败的标识,平台级的报文中会有resultType为N的,同时前端会对错误进行处理的。
11. 当从前台接收到的某个字段须要常常作转换或者处理时,能够在定义接收该字段的实体类中的Set()方法中进行处理,避免了在其余层频繁处理。
12. Action层主要负责业务和模块的组装,用来写业务的流程。Service层用来进行具体的业务操做和数据处理。当Action接收到参数时,在Action进行数据的组装。Action层处理大的业务逻辑,即主要业务逻辑流程的串接,Service层作具体的小业务的流程,以及数据的处理等
13. 在使用MyBatis在XML里面编写SQL语句时,须要联表查询并编写多个Join语句时,应该把每一个Join语句单独成行,方便一眼看出关联了哪些表。以下:
 
14. 对于数据的组装和赋值,应多使用工具类,如dozzer 或者beanUtils中的些对象之间的赋值,尽可能减小set方法。使代码具备简洁、可读性。
 
前端代码
1. 前端的组件如tab id或者name进行命名的时候要有明确含义,尽可能避免tab-一、tab-2这种无心义的命名。
2. 编写JS文件时要在对应页面下建立JS文件夹,而且JS文件也要有适当的注释,关键字段和方法也应加上注释。
3. 在一个页面有多个Tab展现不一样的加载数据时,能够给tab添加定时器,在点击一个tab后对后面的tab进行预加载,没必要一次性加载所有数据,也没必要只有点击以后才加载数据。
4. 当前端页面屡次用到同一个组件的某个属性时,能够添加一个class id,并在CSS或经过Jquery来进行统一控制。
相关文章
相关标签/搜索