现在的位置: 首页 > 综合 > 正文

有趣的系统

2013年10月13日 ⁄ 综合 ⁄ 共 1970字 ⁄ 字号 评论关闭
    最近修改应用程序中的模板编辑控件,搞得晕头转向,一个非常重要的原因是在新版的程序中保留了大量的旧程序的代码,尤其是模块的结构,与5年前没有太大的区别,也就是说与一个刚刚毕业不久的初学者的作品没有什么区别。
    编辑框本身的代码与调用者的代码搅和在一起,指针横飞,模块与模块之间纠缠不清,关系不明确,修改和维护非常麻烦。
    为了免除为了的痛苦,必须对这部分模块进行重构,调整模块之间的结构和调用关系,分清模块与模块之间的职责,整理出模块之间的接口,通过接口隔离模块之间的偶合,这样程序的结构非常清晰,从而便于维护。
    模板编辑控件库中最核心的模块是编辑框控件,它应该具备如下的几个接口:
    1、    IWordTemplate:模板接口,模板树调用这个接口进行模板的加载(覆盖,追加和插入)。
    2、    IWordLib:词库接口,词库列表调用这个接口进行词库的加载(在某各位置插入词库条目)。
    3、    IDataEditor:数据编辑器接口,数据编辑器通过这个接口实现向模板编辑框中加载数据,保存数据。
    除了这三个接口之外,模板编辑框中所有的函数要么是protected,要么是private。这样,模板列表,词库列表,数据编辑器都直接依赖于接口,而不是依赖于这个模板编辑框,对于模板编辑框所进行任何的调整时,都不用惦记着会对其他的模块产生怎样的影响(这非常辛苦,让我们无法全心全意的面对我们真正要关注的问题,这分散了我们的注意力,而且结构混乱的代码任何人都很难维护,所有维护代码的人都非常劳累,效率低下)。对于编辑框代码的修改也不会引起对其他模块的重新编译(如果这种对其他模块的重新编译花费的的时间超过对当前这个小小的模块全部编译所需时间,代价太大了)。
    通过接口隔离模块之间的相互影响,这太有价值了,不仅仅是对于开发人员的,对于后期的维护人员,而且对于市场将有直接的影响。因为这会影响对用户需求变更响应的效率和对用户产品的质量。
    结构不合理的产品是没有生命力的,结构不合理的模块也是没有生命力的。四方区有一个餐馆,经营了快二十年了,现在还在经营着。这个餐馆非常简陋,价格便宜,口味很好,顾客很多,我也很愿意到哪里吃饭。久了之后感觉老板不求上进,经营了那么多年,为什么不把店面扩大一下?为什么不把整个饭店装修一下?现在感觉老板的经营很有道理,这个小店处在一个居民区,附近有一个非常大的机车车辆厂,任何一个到这里就餐的人,都是冲着好的饭菜和合理的价格,而不是漂亮的门面,明亮的大灯,面带微笑的服务小姐,到这里吃饭的每个人都很愉快,包括从进门到离开。这个小店结构简单,服务简单,老板也非常客气,就餐的人都很愉悦,顾客盈门,保证了小店的收入,简单的小店降低了维护成本,老板有钱赚,就能够给顾客提供更好的服务。在四方区这样的一个地方,这个小店的无论是硬件结构还是软件结构,都是合理的,都是易于维持小店作为一个餐馆的功能的,所以小店可以经营多年。
    因此,任何一个好的系统,一个优秀的系统,都具有维持自身稳定性的结构,否则,该系统很快就会消失。疾病对一个人的危害是首先破坏了人体(一个复杂的系统)的非常局部的甚至是微观的结构,导致了这个系统如果保持原来的功能(正常的工作和生活),需要进行维护(就医),如果维护的成本太高,这个人就麻烦了,如果这个系统不可维护(医生说的,并且要家人有心里准备),那么这个系统可能很快就消失了。不可维护的原因是什么?成本太高了。病人没有足够的资金来维护自己的系统了,这就比较麻烦了。如果我们设计的一个模块,一个系统,需要花费太多的时间和金钱来维护,那么,我就应该考虑调整系统的结构(重构),如果调整的成本大于重新创建一个系统的成本,那么我们就会选择重建一个系统。医生会争取重建病人身体的某个功能,如果成本太高,手术会被放弃。
    如果我们设计的软件,由于结构的不合理导致难于维护,那么这个系统存在不稳定的因素,我们一定要想办法让它稳定,稳定才有生命力。 我们对软件进行重构的唯一目的,就是保证软件系统在他自己生存的环境中稳定发展,我们提倡对面向对象的设计,就是为了增加系统的稳定性,我们在设计过程中采用各种各样的设计模式,目的也是为了增加系统的稳定性。
    一个公司,一个团体,一个城市,一个国家,一个家庭,一台电脑,一部手机,一头大象,一个海洋,一个星球,一支军队,一只蚊子,甚至是一个细菌,他们的存在,是因为他们稳定,如果这种稳定性被破坏的情况下,很难恢复,预示着系统将要消失,缺少了作为一个系统的稳定性,都不会长久。
    程序员,注意你自身系统的稳定性,你可以破坏它,因为我们的身体是一个非常优秀的系统,它具有维护自身稳定性的能力,但是千万别没有节制的破坏它的稳定性,否则,结果你是知道的。^_^。

抱歉!评论已关闭.