程序像是“独生子女”

程序像是“独生子女”

吴旻

泰岩网络工作室

 

         我自己的小孩就是独生子女,所以在这里我没有说独生子女如何如何不好的意思。

 

         最近接手的几个程序都发现原来的程序员使用了大量的“单实例模式”。单实例模式的本意是说程序中如果有多个,那是不允许的;而我接手的程序中,之所以这么做,完全是因为当时的程序员觉得有一个就够了,而不是不能有多个。相反,当我觉得如果有多个实例,程序的安全性和架构会更好一些时,我失去了快速重构的可能。我必须将遍布于整个程序中是单实例分离出来,将程序模块间的耦合打开,才可能做更进一步的重构。

         一个单实例和一个独生子女有些太像了,总之是不能再有第二个。其实不是不能有第二个,而是原来的程序会“想尽一切办法”阻止我使用第二个,让我必须按照只能有一个的思路来。这就像政治上一旦对某个事件定了性,想尽快修改,可就是难上加难了。讲实话,原来的程序根本没有打算阻止我使用第二个,但他随意使用单实例,客观上造成的结果是我只能按他原来的思路来,要不然就困难重重。相当于说:改革是可以的,代价是惨重的。

         不改,是没有出路的,改,代价又是惨重的!这就是现状。

 

         我有点不太理解为什么这种程序的适应性会这么差。或许是最初的程序员没能理解程序作为整个系统的一部分,是会遇到其它接口的瓶颈的。比如,网络传输需要时间,磁盘读写需要时间,数据库查询需要时间。总而言之,原来的程序员觉得这个程序是最重要的,所有的其它部分都是配合它而且不需要时间的,如果其它部分不能配合,那就是其它部分的问题了。如果眼下性能出现问题,那调整其它部分的代价是高的,但修改这部分程序的代价一定是最高的!

         其实多数独生子女不会觉得自己在家中是最重要的,但是他们会意识到别人拿他们是没有办法的。他们只要既成事实,家长就会因代价的选择而不得不默认什么。我接手的程序,大意也是如此。

 

         希望以后能少接一些这样的程序。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值