Java开发规范(3)代码规范

一、后端代码规范

1、Controller层开始必须为权限判断(尤其是编辑和新增);

2、Controller层不出现 try...cache...,只出现 throw new XXXException(code); 统一处理;

3、getList的请求建议封装Condation对象,而不是一个个变量;

4、有数据修改的,必须 method=post;user、company信息建议在manager层处理;

5、Manager层是事务层,对于一些不能分割的操作放在该层的方法中,不可分割的业务逻辑不应该出现在Controller中;

6、Service层只是比Dao层多一个cache(也就是说将来我们的cache添加到Service层),添加cache后,Service从Dao中获取到List<id>,for 遍历再从Dao中取domain封装成List<Domain>;

7、添加cache后,从cache中取出的对象不允许被直接使用,而应提供BeanUtils.copyProperties;

8、user、company 不允许从页面传递过来;【从session中获取userId,根据userId获取User对象,根据User对象的cId获取Company对象】

9、getCurrentUser() 之类的方法(从session中获取uid,再获取User对象)不允许出现在manager、service、dao层,必须从controller中传递过来,否则有关这三层的junit测试将无法进行;

10、Dao层直接返回List<Object>,后期添加cache后,Dao层只能返回List<id>;

11、Dao层获取一条数据的时候,仅允许使用id主键,其他方法只允许返回List<id>;

12、Domain层和DB table 一一对应,实现 Serializable 接口;

13、Domain 采用贫血模式;

14、所有DB查询不能出现关联查询、子查询(当有了cache之后更不允许出现);

15、对于数据量不大的表(无分页),sql中不允许出现order by,排序操作中java中进行;

16、Page/VO 层只是为page渲染服务的,不实现Serializable接口;

17、PageDomain 只能在模块详情页面和编辑页面中使用,查询列表时通常不允许返回List<PageDomain>;【List<Domain>】

18、每一个Java类都必须有基本的类注释,简单说明类的用途、创建人等信息;

19、后端String类型数据,必须用<c:out value="{data}" />渲染,它会过滤掉"<"、">"等字符,避免恶意数据造成损失;

 

二、测试代码规范

1、每个junit测试必须将该业务逻辑中对DB有修改的所有数据都进行断言判断才能算完成,不能只做数量断言;

2、每一个public方法应该对应一个具体的页面操作;

3、各层(dao、service、manager)不允许为了测试而新增方法;

4、insert 测试包括:

a、insert前table总数据;

b、insert后table总数据;

c、断言两个数据是否为+1关系;

d、根据insert的id查询对象,断言相关属性;

5、update测试包括:(根据具体业务来吧,大体上类似insert的思路)

三、建议性质

       1、编码前采用有序列表的方式编写整个逻辑结构,之后填充代码

eg:编辑表单

{

//1、将当前表单form1 的delete=false;
coding....

//2、生成一个新的表单form2;
coding....
 

//3、找到所有引用form1的流程(delete=true),循环修改form1为form2
coding....

}

     2、大的业务逻辑代码中,不同业务逻辑代码用空行隔开;

     3、操作符前后加空格,避免代码过于拥挤;

     4、一个方法不要有太多行代码,尽量控制在一屏之内(40行左右);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值