程序进化论之素材
程序进化论之素材
AlbertBoy 发表于2年前
程序进化论之素材
  • 发表于 2年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

 工作有几年了,主要干的是系统维护工作,维护一个庞大而臃肿的erp系统,说它庞大,是因为这个erp系统已经在前前后后快12年的时间里经过了无数次的改造,增添了各种奇思妙想,早已面目全非,说它臃肿,是因为这些奇思妙想是各种重复的功能的叠加。然而从软件工程的角度来讲,我们并没有做的很好,没有很好的梳理和管理代码,导致系统功能和系统代码一起变得臃肿,速度自然也像老牛拉破车了。细说其实还是存在很多客观因素的,但这并不妨碍程序进化论的探讨,程序进化论就是在这些客观因素存在的情况下,探讨如何进行程序的进化的。

 代码重复,代码复用,这个一直困扰我的问题时至今日也未能很好的解决,但我却有了点想法。事情是这样,我们有一串流程类的业务,它们之间的关系是前后锁定的,就是下步操作了,上一步将无法执行,其实这种流程很常见。但是我遇到了一个棘手的问题,这些前后的锁定代码逻辑,是写在各自的业务后台程序里的,即使它们之间的代码是完全一样,这导致了一个严重的后果,牵一发动全身,不仅如此,要知道这种所谓的锁定是存在各种各样的小后门的,就像这个社会一样,仅有知道的人才知道。因此我常在修正这些锁定的逻辑后,数周或者数月,修正前的问题突然又冒出来了,就像我什么都没干一样,这是令人极其沮丧的。追查后才发现是有个不为众人所知的小后门导致的,于是开始搜寻是否存在同样类似的小后门,要知道海底捞针是极其痛苦的事情。

 其实并不是否定这些小后门不应该,而是我们的程序并没有适应这种变化,我们的程序本身就是为了服务于各种繁杂业务而存在的,但当业务变更时(这很常见),可以理解为环境变化时,我们的程序并没有适应这种变化,这当然适应不了,因为当初程序不是这么设计的,但现实是当初的设计不能满足现状了,因此修改程序是不可避免的,所以问题的关键就在,如何修改程序,才能让我减少这种问题带来的痛苦,这也是进化论的关键之一。

 记得设计模式里面有个OOD,叫做封装变化,这里可以借鉴,以我目前的经历,我觉得应该可以把各种前后的锁定逻辑做成接口,把已经写在各自业务后台里的代码抽离出来,统统调用接口,这样以后改接口就好了,对于这些小后门,当我们要新增一个小后面的时候,不要直接通过改数据档来完成这个功能,而是通过将相关的业务后台做成接口,用小后门来调用这些接口来实现功能,这样即使不知道小后门的存在,无不会影响小后门的功能,我们只需修改下接口,一切就OK了。

 所以程序进化论的关键不是在于程序本身的适应性,而是环境变化时,我们作为程序维护人员,应该如何修正程序,来适应这种环境变化,这种修正的方法应该像基因一样,刻入到每个维护人员的骨子里,一旦出现这种状况,这个基因就是发挥其效能的时候了。

——————————————————————————————————————————————————

   第一次写博文,记录下自己的想法,希望对以后有帮助,我知道大概已经有书讲解过类似的问题,但是我还是想自己梳理下自己的思维,让自己成长。
共有 人打赏支持
粉丝 1
博文 6
码字总数 2083
×
AlbertBoy
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: