成都创新互联网站制作重庆分公司

java写业务代码思路,如何写业务代码

如何写好业务代码

烟囱式开发模式:

创新互联专业为企业提供桐庐网站建设、桐庐做网站、桐庐网站设计、桐庐网站制作等企业网站建设、网页设计与制作、桐庐企业网站模板建站服务,十年桐庐做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

上述开发模式有几个弊端:

这样开发模式的优势:

业务代码集中在业务层 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()方法更加灵活。

例如,公共字段,生成日期,创建人,修改时间,修改人使用插件的形式进行封装,在mybatis-plus中使用MetaObjectHandler,在执行sql之前完成统一字段值的填充。

项目如何做好代码注释?

在业务中特别是状态的值,在对外发布api的vo对象中,加上状态枚举值的注释,并且使用@link 注解,可以直接连接到枚举类,让开发者一目了然。

对于java项目,我虽然知道业务逻辑但是还是不知道怎么写出代码 ,原因在哪 ?

其实你已经很好了,我认为写程序首先要有自己的思路,其次才是看你真正掌握的技能...比如一艘船如果有足够大的马力,但是缺少正确的方向..那样子会装上暗礁的,所以在编程方面业务逻辑是很重要的,接下来只要有一般的技能基础就可以了;

就拿你说的修改密码来说吧:第一步:我首先要知道要修改人的ID,然后才能按照一定的方法修改数据库中的表:一个update user set user_password=“要修改的密码” where user_id=“指定修改人的ID” 再加上一定的连接数据库的方法..程序员修改密码的目的就达到了...加油!

JAVA 开发一个比较好的逻辑流程,或者说开发思路和写代码的顺序

写代码的顺序最好和实际操作的逻辑一样,先做什么后做什么,这样能最大程度的保证逻辑不会出什么问题。前提是你要熟悉业务逻辑。

还有开发的时候不要局限于一个方法的实现代码逻辑,先从整体上把方法都写出来,比如这个方法要做什么,只管写一个方法就行,具体怎么做可以在框架都搭完了再写,更好的就是全部用接口,接口全部写好了之后再写实现类,这样更好。

还有一个方法里面的代码最好不要太长,最好不要超过一个屏幕,不然看起来很累的,可以把一个方法分成好几个方法来写,那样BUG也会减少很多,逻辑性强。还有就是最好不要循环嵌套,嵌套个两三层后出问题就麻烦了,如果一定要嵌套就分出去一个方法就好。

还有就是要多集成,能通用的方法就通用写掉,写成工具类,如果有框架了,多多熟悉原本就有的工具类,都自己写的话代码多不说,还很容易出错,要学会活用别人的代码。

最后:多多交流,自己蒙头写只能一事无成。

最最后:手打真累...


新闻名称:java写业务代码思路,如何写业务代码
文章位置:http://cxhlcq.com/article/hddjge.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部