为可变而设计

来源:互联网 发布:淘宝旺铺模板 编辑:程序博客网 时间:2024/06/08 09:43
昨天REVIEW了一份设计文档,数据模型设计的异常的"灵活“,令我几乎无法理解其中设计的奥妙...有感而发

记得以前我的师父在接手一个快烂掉的系统的时候,将该系统里面的源代码仔细阅读后,砍掉了其中近1/3的代码行,原因很简单,原来系统设计了一大堆”灵活“的设计,使得系统看起来很强大,实际上由于各个人员水平参持不起,反而使得系统变得脆弱,配置复杂难用,问题百出。

再举个例子,比如系统的配置参数,很多开发人员为了使得系统更加灵活,在系统中增加了很多配置参数,这种灵活的方式出发点是好的,但是可能带来一系列的问题,比如安装维护的问题(如何理解配置参数,配置参数的缺省值),比如良好的配置参数界面的问题等等,这些问题如果没有统一考虑,当配置参数越来越多的时候,系统将变得混乱不堪,难以管理。

同时,灵活设计应该是建立在全面的分析考虑基础上的,反思自己过去的一些设计,或者看到别人的一些”灵活“的设计,我发现有相当的设计,都是不全面,但是确是‘灵活’的,有用的,但是灵活带来的好处没有多少,系统的复杂性和稳定性却降低了。

早期的时候,觉得多线程可能提高系统的并发处理能力,因此在很多程序开发中总是喜欢用多线程并发处理,但实际上多线程带来的却是系统的复杂性和加锁后系统性能的下降,还不如采用单线程+消息度队列处理的模式简单可行。

灵活的设计是双刃剑,带来的是灵活,同时也带来了高度的抽象以及系统的复杂性,越复杂,意味着对系统开发人员的要求越高,实现难度越大,风险也越高。把简单的事情变复杂往往很容易,把容易的事情变简单才困难。

是否采用”灵活“的设计,如果没有客户的实际需求支撑,实际是一种应该尽量避免的做法;如果没有全面考虑清楚,则设计应该保留简单,清晰,可扩展,只要能够为未来的进一步的设计打好基础,就足够了。

应该记住:仅为可变而设计,不用担心未来系统的灵活性,我们会不断重构系统的!
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝跨店满减后退货优惠怎么办 牛仔外套短了怎么办 衬衫领子软立不起来怎么办 太多衣服要扔怎么办 旅行衣服皱了怎么办 衣服下摆太宽怎么办 短袖会卷起来怎么办 外出一个月冰箱怎么办 孩子喜欢吸手指怎么办 宝宝吸手指睡觉怎么办 宝宝总是吸手指怎么办 忍不住对孩子发火怎么办 婴儿过早站立了怎么办 连体衣露肚脐怎么办 超短裤太宽怎么办 婴儿的脸睡偏了怎么办 油烟机装高了怎么办 鞋子前面翘起来怎么办 宝宝短袖领子大怎么办 宝宝衣服领口大怎么办 婴儿衣服领口大怎么办 宝宝衣领大了怎么办 小婴儿衣服发黄怎么办 宝宝衣服黄黄的怎么办 放久衣服发黄怎么办 旧婴儿衣服发黄怎么办 产假休完 宝宝怎么办 隐形拉链拉不动怎么办 婴儿低烧不退怎么办 宝宝衣领小了怎么办 宝宝的衣领太大怎么办 半袖买大了怎么办 婴儿上眼睑下垂怎么办 孕妇穿胸罩闷怎么办 婴儿拉肚子怎么办拉水水象蛋花样 婴儿拉肚子怎么办拉水水象蛋花图片 小孩喜欢吃被子怎么办 宝宝喜欢吃被子怎么办 宝宝晚上蹬被子怎么办 武汉飞澳门手续怎么办 远嫁外省怎么办婚礼