`

(过度)设计其实是一种病

阅读更多
软件设计的学问很深,学一点可以开拓思路,学透了可以成为专家,而学得半透不透的时候,感觉就会像一种病,一种“设计病”。

得了“设计病”的程序员干活很慢。你看那些刚毕业的年轻同志,拿到任务后立刻打开开发工具,又是点又是敲的,一会儿就能看到界面,程序功能一个一个地不断被实现,速度快的很。得了“设计病”的程序员就不能这样。拿到任务后左思右想,总觉得这样也行,那样也不错,一个小程序他能想出几百种方法来,光权衡就得半天。写程序通常也不从界面开始做,闷着头在键盘上狂按了好久,程序还是不能运行,搞得项目经理直冒汗。

“设计病”的程序员写的程序,写着费劲,看起来劳神。通常别人写一个函数的,“设计病”人非要写成好几个。使用面向对象开发语言的更是如此。“设计病”人写的程序里,类特别多。人家用两三个类就可以实现的功能,“设计病”人要用五六个类,甚至更多。还弄一些个类,一堆虚函数,一个成员变量也没有。稍大一点的程序就有几十上百的类挤在一起,关系也很复杂,一般人还真看不懂。

和“设计病”人讨论问题也不容易。通常大家都在谈这是个什么功能,某个功能怎么样才能实现,而“设计病”人常常不讨论这个,嘴上总挂着什么“复用”、“耦合”、“模式”等一类莫名其妙的词汇。就算“设计病”人在讨论功能的时候,听起来也和程序的实际功能相差很远。比如当大家在讨论使用多线程实现的时候,他就讨论线程管理类的接口;当大家讨论发送数据要缓冲的时候,“设计病”人却在研究如何实现一个快速的数据队列。

事实上“设计病”人自己也很痛苦。他们对现有的方案总是不满意,甚至昨天他自己写的方案,今天再看时也觉得不满。自己费尽心机设计出来的可复用的类,却从来都没有被复用过。自己好不容易设计出的松耦合的模块结构,在增加新功能时,却不得不在很多层次的类上做修改。

“设计病”也很难治好。“设计病”人总是不由自主地做设计,不愿意用直接的方式实现程序,总想把程序一点点剥开、分解。怎么劝都不会有用。他们相信迟早有一天自己的设计会发挥作用。

“设计病”人写出过很多烂程序。要么设计失败,考虑不周,程序结构有问题,要么过度设计,简单的功能,大堆的类,还不如不做设计。

不由自主地去设计,努力去写出烂程序,不是一种病又是什么?

如果您觉得也得了“设计病”了,也别太着急,办法有一个,就是继续“病”下去,努力做设计。直到有一天,能平衡完美和实用了,这病也就好了。


分享到:
评论
1 楼 lenozhi 2008-11-21  
楼主说自己呢吧,呵呵。有点同感

相关推荐

    过度设计是一种病 _ Kedou [Java技术].

    在软件开发过程中,过度设计是一个常见的问题,尤其对于经验丰富的开发者来说更是如此。它指的是在设计阶段过分追求完美和未来的可扩展性,导致系统变得过于复杂,难以维护和管理。本文将深入探讨过度设计的现象、...

    初中语文文摘生活过度安静也是一种折磨

    初中语文文摘生活过度安静也是一种折磨

    反对过度设计.zip

    在软件开发过程中,"反对过度设计"是一个重要的设计理念,它倡导在满足功能需求的同时,避免设计过于复杂和冗余的系统。过度设计可能导致资源浪费、维护困难和代码可读性降低,因此理解并掌握适度设计的原则是每个IT...

    行业文档-设计装置-一种矫正治疗颈椎病的牵引装置.zip

    颈椎病是一种常见的健康问题,尤其在现代社会中,由于长时间保持不良姿势、过度使用电子设备等原因,颈椎病的发病率持续上升。设计和应用矫正治疗颈椎病的牵引装置是医疗技术领域的重要进步,它能够帮助患者缓解疼痛...

    “过度医疗”也是病.pdf

    “过度医疗”也是病.pdf

    75丨在实际的项目开发中,如何避免过度设计?又如何避免设计不足?1

    一方面,过度设计会导致不必要的复杂性,增加代码维护难度,浪费开发资源;另一方面,设计不足则可能导致代码难以扩展,无法适应需求变化,降低软件的健壮性和可持续性。下面我们将深入探讨如何避免这两种极端情况。...

    反对过度设计.doc

    反对过度设计.doc

    行业文档-设计装置-一种自动厕纸机.zip

    【标题】: "行业文档-设计装置-一种自动厕纸机" 这个压缩包文件的核心内容聚焦于一种自动厕纸机的设计方案,它属于自动化技术在日常生活设施中的应用。自动厕纸机是现代化公共卫生设施中常见的一种设备,旨在提高...

    行业文档-设计装置-一种结核病人吸痰器.zip

    本文将深入探讨一种专为结核病人设计的吸痰器,这种装置旨在帮助改善病人的呼吸状况,提高治疗效果,并减少医护人员的工作负担。 结核病是一种由结核杆菌引起的传染病,主要影响肺部,导致肺部产生痰液。这种痰液...

    行业文档-设计装置-一种防用力过大中性笔.zip

    在描述中,我们看到同样的信息,“行业文档-设计装置-一种防用力过大中性笔.zip”,这进一步确认了文件的内容是关于一个设计项目,可能是为了解决在使用中性笔时,由于用力过度导致笔芯断裂或书写不流畅的问题。...

    行业文档-设计装置-一种旋转笔架.zip

    标题中的“行业文档-设计装置-一种旋转笔架”表明这是一个关于工业设计或者产品设计的文档,具体聚焦在一种创新的旋转笔架的设计上。旋转笔架作为一种实用的文具,其设计涉及到机械工程、人体工程学以及美学等多个...

    行业文档-设计装置-一种降温帽.zip

    1. 设计背景:解释为什么需要设计这样一种降温帽,可能是为了提高工人的舒适度,减少热射病等职业病的发生,或者是针对某些特殊行业(如消防、冶金、户外作业等)的需求。 2. 工作原理:详细阐述降温帽如何运作,...

    行业文档-设计装置-一种充气笔.zip

    标题中的“行业文档-设计装置-一种充气笔.zip”表明这是一个关于设计装置领域的专业文档,具体聚焦在一种充气笔的设计上。这种文档通常包含了技术规格、设计原理、使用方法以及可能涉及到的创新点。从描述中我们再次...

    行业文档-设计装置-一种便利型书架.zip

    在本压缩包“行业文档-设计装置-一种便利型书架.zip”中,主要包含了一份名为“一种便利型书架.pdf”的文档。这份文档详细介绍了关于设计装置领域中的一种创新设计——便利型书架。书架是日常生活和工作环境中常见的...

    行业文档-设计装置-一种防咬钢笔.zip

    标题中的“设计装置-一种防咬钢笔”表明这是一个关于创新设计的文档,具体是针对防止用户过度咬合或误咬钢笔而设计的一种特殊装置。防咬钢笔设计的目的是改善用户习惯,保护牙齿健康,同时保持书写工具的功能性。 ...

    行业文档-设计装置-一种防困保健笔.zip

    "行业文档-设计装置-一种防困保健笔.zip"这个压缩包文件为我们揭示了一个独特的产品设计理念,即结合科技与人性化,打造一款防困保健笔。这款产品不仅是一个书写工具,更是一个具有健康监测功能的智能装置,旨在提高...

    行业文档-设计装置-一种节水滴灌带结构.zip

    标题中的“行业文档-设计装置-一种节水滴灌带结构”揭示了这是一个关于农业灌溉技术的专题,特别是涉及节水滴灌设备的设计。这种装置的主要目标是优化水资源利用,提高灌溉效率,减少水浪费,适用于农田、果园、蔬菜...

    行业文档-设计装置-一种晚上看书的LED灯.zip

    标题中的“行业文档-设计装置-一种晚上看书的LED灯.zip”表明这是一份关于LED灯设计的行业技术文档,特别关注的是适用于夜间阅读的LED照明解决方案。这种LED灯可能是为了提供适宜的光线强度和色温,以减少眼睛疲劳,...

    行业文档-设计装置-一种简易滑轮式增力钢筋剪.zip

    标题中的“行业文档-设计装置-一种简易滑轮式增力钢筋剪”表明这是一个关于机械设备设计的专业文档,具体是关于一种利用滑轮原理增强力量的钢筋切割工具。这种装置可能是为了提高工人们在建筑工程中处理钢筋时的工作...

    行业文档-设计装置-一种订书器.zip

    在本压缩包“行业文档-设计装置-一种订书器.zip”中,主要包含了一份名为“一种订书器.pdf”的文件。这份文档很可能是关于订书机设计的专业资料,涉及了机械工程、产品设计和制造等多个领域。订书器作为日常办公和...

Global site tag (gtag.js) - Google Analytics