什么是代码业务(如何写好业务代码)
烟囱式开发模式:
上述开发模式有几个弊端:
- 业务代码重复,业务相似会有大量相似的代码
- 数据库表结构的变动需要修改设计的dao层,维护成本高
- 此类相似业务,api层定义各自显示对象,dao层负责获取全量数据(例如,用户查询,就获取整个用户表字段的数据),service层定义业务对象,根据不同api不同业务类型的判断,根据dao查询的数据组转业务对象,以及业务对象向api显示对象的转换。
这样开发模式的优势:
业务代码集中在业务层 service,专注于业务对象 bo 的封装以及业务对象给展示层 vo的转换,封装复用逻辑,可以减少大量重复的代码,后期维护便捷的多。
数据库改动只设计dao层,快速响应各个业务。
业务代码如何拒绝 all in one
以上的controller代码最突出的缺点就是代码完全无法复用,完全没有使用到面向对象封装,集成,多态的特性。业务开发中,一般都是权限校验,参数校验,业务判断,业务对象转换数据库操作。
我的做法是业务抽象,把公共代码进行抽取,通过配置的形式的方式调用,使业务代码可以以可插拔的方式选择指定的权限校验,参数校验。简单来说,就是善用AOP面向切面编程的思想,示例如下:
权限校验:
使用aop对权限校验逻辑进行抽取,能够通过注解的方式指定哪些controller需要进行权限校验。对用户进行数据过滤时,使用controller的拦截器获取该用户拥有的各类权限,并把用户数据保存在上下文threadloal中,并且通过配置对指定url进行拦截。在业务层,从上下文拿到用户权限数据做各类数据业务过滤,通过aop实现各类拦截业务的指定调用。
参数校验:
使用java validtion对通用的字段,例如电话号码,身份证,进行扩展,详细可以参考,如何使用validation校验参数?,在项目中其他类似校验进行复用。
业务判断:使用设计模式对不同类型的业务开发进行封装,集成,多态扩展;这样在后期的扩展中可以基于开发封闭原则,针对新的业务扩展子类即可。
业务对象转换数:
业务开发过程中,依照阿里巴巴研发规范的要求,存在DO(数据库表结构一致的对象),BO(业务对象),DTO(数据传输对象),VO(显示层对象),Query(查询对象)。
使用MapStruct,可以灵活的控制的不同属性值之间的转换规格,比
org.springframework.beans.BeanUtils.copyProperties()方法更加灵活。
DB数据库公共字段填充:
例如,公共字段,生成日期,创建人,修改时间,修改人使用插件的形式进行封装,在mybatis-plus中使用MetaObjectHandler,在执行sql之前完成统一字段值的填充。
项目如何做好代码注释?
枚举类的使用:
在业务中特别是状态的值,在对外发布api的vo对象中,加上状态枚举值的注释,并且使用@link 注解,可以直接连接到枚举类,让开发者一目了然。
-
什么p2p理财产品收益高又安全可靠(年收益5-8%,一种非常优质的P2P产品)
银票理财,是目前互联网理财最优质的资产之一,值得一说。银票理财,本质上还是P2P,企业向个人融资。但借钱时,企业会拿手里的银行承兑汇票作抵押,到期之后由银行支付本息。银行承兑代表着,只要银行不破产,你就一定能拿回本息。而且,银票理财的期限都比较短,一般都在半年以内,正常的收益一般在5%-8%之间。所
什么p2p理财产品收益高又安全可靠(年收益5-8%,一种非常优质的P2P产品)100 -
什么是代码业务(如何写好业务代码)
烟囱式开发模式:上述开发模式有几个弊端:业务代码重复,业务相似会有大量相似的代码数据库表结构的变动需要修改设计的dao层,维护成本高此类相似业务,api层定义各自显示对象,dao层负责获取全量数据(例如,用户查询,就获取整个用户表字段的数据),service层定义业务对象,根据不同api不同业务类型
什么是代码业务(如何写好业务代码)100 -
什么是信用卡退款(信用卡退款是个啥?)
购物刷信用卡,退款以后这笔钱可以用来冲抵账单吗?把退款当作还款,这个坑你栽过吗?信用卡退款能否冲抵账单?购物时使用信用卡付款,既便捷,又可享受长达几十天的免息期,因而,特别是对于大额消费,只要条件允许,人们会更倾向于使用信用卡。然而,当信用卡的使用频率越来越高,对于使用信用卡支付的商品,由于质量、运
什么是信用卡退款(信用卡退款是个啥?)100 -
cbc是什么银行的缩写(看各家银行英文字母缩写)
朋友聚会时,有人给大家讲了个笑话,说国内这些搞金融的银行、平台,你看看它们的英文缩写,分析一下特别有意思!中国建设银行英文简称:(CBC)中文简称:"存不存”?中国银行英文简称:(BC)中文简称:"不存!"中国农业银行英文简称:(ABC)中文简称:"唉,不存!"中国工商银行英文简称:(ICBC):中
cbc是什么银行的缩写(看各家银行英文字母缩写)100 -
为什么要用防火板(家里装修记得加防火板)
很多家庭在房子装修时只注意防水防漏,却忽略了防火问题。 火灾一旦发生,对于我们的生命安全造成了极大的威胁,这时如果有更多的时间,就多一分安全。而防火板就具有一定的防火效果,可以为业主争取更多的逃生和救援时间。 什么是防火板? 防火板通常被称为防火板,是在高温高压环境下压制不同种类的纸张的产品。 虽然
为什么要用防火板(家里装修记得加防火板)100
-
2025-06-07
-
2025-06-07
-
2025-06-06
-
2025-06-06
-
2025-05-09