java项目设计文档_分享关于Java项目开发规范文档及相关注意点总结

1.接口出参

接口出参应为:状态码(responseCode)+状态信息(responseMsg)+业务数据(data),所有业务数据封装在data中,data可为集合或数组,入参与出参如下参数名类型是否必须说明

入参业务参数-N业务相关字段

出参responseCodeStringY状态码

responseMsgStringY状态信息

dataMap/ListY业务数据参数名类型是否必须说明

data业务相关数据Key-Y此data中的数据为具体业务中需要返回的数据

2.注释

类,接口,方法(除了get/set方法,特别简单的方法,以及实现接口的方法)都必须写注释,说明类,接口,方法的作用,像下面这样:类名前的注释@b@/**@b@* 调用系统提供的相关服务@b@* @b@* @author  junni@b@* @b@*/@b@public class MopSAOImpl implements MopSAO, BeanFactoryAware {@b@ @b@接口名前的注释@b@/**@b@* 系统提供的相关服务@b@* @b@* @author junni@b@* @b@*/@b@public interface MopSAO extends SAO {@b@ @b@方法的注释@b@/**@b@* 查询Offer满立减红包@b@* @param param@b@* @return@b@* @throws Exception@b@*/@b@Map queryOfferRedBag(Map param) throws SAOException;

3 格式化代码,保持代码的整洁;

4 尽量使得方法完成功能单一,使得方法得到充分的复用;

5 类名,方法名,变量名要起得有意义,做到不用注释即可理解;

6日志打印,一般在方法进入和退出点都要打上日志,关键点也要打上日志;严禁使用System.out.println打印日志,只能使用Logger

7 ESA/Controller类里只注入Service,SAO,不允许注入DAO;

8 DAO一般是注入Service里,业务逻辑都在Service里实现;

9 ESA/Controller里只进行参数的赋值,接口的调用,不允许出现较多的业务逻辑;

10 使用DTO对象来作为访问数据库接口的入参和出参;

11 不要取得数据表里所有的字段,按需读取;

12 使用equals匹配内容常量在前,变量在后,避免变量为null时运行报错

13 字符串空值判断使用StringUtils.isBank()和StringUtils.isNotBank()

14 所有实体类要重写toString()@Override@b@    public String toString() {@b@       try {@b@           return BeanUtils.describe(this).toString();@b@       } catch (Exception e) {@b@ @b@       }@b@       return "";@b@    }

15 SQL映射文件中使用预处理语句

所有参数外部传入,不要在sql中写死,数据获取使用#{},任何情况下禁止使用${}

16 除非业务逻辑要求,任何情况下严禁在循环体中调用数据库,批量插入语句:@b@@b@INSERT INTO  role_power@b@(@b@id,ROLE_ID,POWER_ID,created_by,created_Date@b@)@b@@b@select#{rolePowerSingle.id},#{rolePowerSingle.roleId},#{rolePowerSingle.powerId},#{rolePowerSingle.createdBy},#{rolePowerSingle.createdDate}@b@from dual@b@@b@@b@@b@@b@@b@  @b@                              NOTICE_TARGET IN@b@                              @b@                                #{targetList}@b@                              @b@                            @b@@b@

17 接口命名按照组件和功能模块、具体业务功能分三级

18 字段命名要与数据库同步,特殊情况需与中文名意义相符,做到不看接口文档也可知其意

19事务管理在Services层实现类中通过注解 @Transactional/在配置文件中集中配置实现,不要配置到Controller层

20 Spring注解规范::

Controller层:@Controller

Service层: @Service

Dao层: @Repository

其他组件如Util等: @Component

如果要为交给spring管理的类指定名字要以驼峰命名的规范, service 和dao层指定名字的时要指定接口的名字不能带impl

20 Service是实现业务逻辑的地方,不要和前端controller有过分的紧耦合,所以一般不建议传入的参数里出现request,response等

21数据库中需要对即时时间进行计算或比较时等需要从java中传入,不要使用数据库自带时间

22接口查询、修改数据时,需做权限校验,避免出现越权操作

23接口form中所有字段均需用String格式接收,如果用其他格式,若匹配失败会直接把异常抛到responseMsg中{"responseCode":"900103","responseMsg":"Failed to conve.lang.NumberFormatException"}

24后台异常返回,“responseCode”和“responseMsg”这两个字段的值定义在静态常量类里,

25代码编写过程中要注意整理代码结构,提高其可读性,一般一个方法不要超过30行,如有特殊原因,需保证代码结构清晰,条例清楚,方便阅读

26全局变量规范:领域简称(大写)+应用简称(大写)+组件简称+业务功能码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值