软件的退化

日期:2023.11.02,Thur

软件开发过程中,软件设计质量最好的时候是第一版,当第一个版本上线以后就开始各种需求变更。很多人可能会说系统应该做好架构设计,设计的灵活性上要有很好的扩展,很显然这是很难做到的,因为现实中的需求是不确定的,我们仅仅能预设部分扩展和模式,如果设计的过多其实很容易造成“过度设计”,现实中你的很多设计可能根本就用不到,反而会造成系统的臃肿。所有设计大部分内容肯定是基于现有的业务和功能设计的。
现在问题来了,那经过十次,二十次,三十次的变更以后,怎样防止软件的退化呢。在软件领域有一种非常厉害的开发方法,或者说是一种思想,DDD,领域驱动设计(Domain-Driven Design)。这也是帮助我们做好微服务拆分非常重要和可行的一种方法。
所以要想保持软件不退化,那就必须在每次需求变更的时候,对原有的程序结构适当地进行调整,而不是不对的在一个方法或者代码中,不断添加 if else,最终弄的不可维护。人称 shi 山代码。
这里有两个方法,做好可以大大的避免代码持续恶化。

  • 在不添加新功能的前提下,重构代码,调整原有程序结构,以适应新功能;
  • 实现新的功能。

简而言之,保持软件设计不退化的关键在于每次需求变更的设计,只有保证每次需求变更时做出正确的设计,才能保证软件以一种良性循环的方式不断维护下去。
在调整的过程中,需要注意一些基本的设计原则
比如开放-封闭原则(OCP) 分为开放原则与封闭原则两部分。

  • 开放原则:我们开发的软件系统,对于功能扩展是开放的(Open for Extension),即当系统需求发生变更时,可以对软件功能进行扩展,使其满足用户新的需求。
  • 封闭原则:对软件代码的修改应当是封闭的(Close for Modification),即在修改软件的同时,不要影响到系统原有的功能,所以应当在不修改原有代码的基础上实现新的功能。也就是说,在增加新功能的时候,新代码与老代码应当隔离,不能在同一个类、同一个方法中。

单一职责原则等等,都是一些比较好的思想,值得我们在开发过程中,好好体会理解。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容