关于提升代码可维护性的一点思考

为何须要提升代码的可维护性

​ 由于在平时开发项目过程当中,由于项目工期紧、需求变化频繁等等缘由,而后致使代码混乱、service臃肿,最后致使维护成本高维护人员怨声载道,最坏结果可能须要重构。面试

如何提升代码可维护性

  • 开发以前建模spring

    ​ 写代码以前最好建模,把整个业务流程清晰在图形当中展现,以便本身加深对业务的理解同时对整个业务代码的掌控。设计模式

  • 合理的归类bash

    ​ 为何须要合理的归类,大多数咱们都只开发entity,dao,service,controller等四层,那么这样会随着项目不断的迭代致使类太臃肿。app

    ​ 那么咱们就须要在这四层的基础上再丰富一些。工具

    ​ 例如:学习

    ​ 1.加入job任务包ui

    ​ 2.加入utils工具类包spa

    ​ 3.加入handler处理器设计

    ​ 以上归类只是给你们提供一点思路,具体业务场景还需分析。其实这些在一些优秀的开源项目当中都有体现。你们只须要看看学习理解,而后照搬过来便可。这也是为何须要看源码的缘由,我的以为看源码不牢牢是熟悉整个执行过程有助于排查问题过程。更重要的是学习里面的设计思路。

  • 合理的引入一些设计模式

    ​ 设计模式是老生常谈的话题了,面试当中也会问。那么问题来了在何时引入设计模式呢?

    ​ 举个例子:

    ​ 假设咱们在开发一个订单功能,此时须要建立一个订单,建立好订单后须要给用户发送短信啊一系列操做。

    ​ 常规开发可能就是在一个方法里面或者在一个service里面拆几个小方法搞定了。

    ​ 其实在这个场景我推荐你们使用事件机制也就是观察者模式去实现,为何?自己客户端是发起建立订单的操做,发送短信的等操做其实在这个时候和订单不要紧,是在产生订单后的操做。若是你们有用spring,那么能够借用spring已经实现的来实现。

    @Service
    public class PaymentOrderServiceImpl implements PaymentOrderService {
        
        @Autowired
        private ApplicationEventPublisher applicationEventPublisher;
     
        public PaymentOrder createOrder(PaymentOrder paymentOrder){
            //完成建立订单后发起事件
            applicationEventPublisher.publishEvent(new PaymentOrderEvent(paymentOrder));
            return paymentOrder;
        }
    }
    复制代码

    ​ 根据上面的代码,咱们只须要自行实现监听器,而后就能够完成建立订单后的业务操做。这样就达到了一个解耦的效果。会不会更好?

相关文章
相关标签/搜索