健康去哪儿
健趣网登录 关闭
还没有账号?立即注册
已选疾病:
当前状态:
希望了解:

软件开发中的瑞士军刀综合征站长博客网

发布日期:2014-10-04 10:47:16 浏览次数:1596

就我的经验来看,同样的问题也出现在软件上。大多数时候,开发人员仅仅 因为“这很酷!”

就把一些功能或者一段代码放进工程里;项目经理们会认为这样或那样的特性可以增加价值,并且在项目中期修改需求;消费者因为听说或看到某个性能对他们“至关重要”而期望额外功能或特性。

这种“瑞士军刀综合征”可以有很多形式: 需求范围的蔓延,过早的优化,等等。

但是问题的根源在于,我们是如何理解并评判软件、工作量及其附加价值的价值:

更多功能

=

更大价值

现实中,以及绝大多数情况, 事实恰恰相反

。一段代码或者一个软件越复杂,它提供的价值就越少。一个个人的例子就可以简单说明这一概念,Demac Media内部使用的枢纽控制台。

本来这个应用很简单:我们需要一个(1)查看所有分配给小组的任务和(2)通过本周或两周的底线来过滤任务——简单来讲,就是一个带有过滤功能的任务整合器。

我用了一周时间,写出了基本的功能。在下周周一时,我给我们团队的项目经理展示的时候,他认为这个应用不错,很有用。

于是 瑞士军刀综合征

开始了:这个工具要和另一个团队共同使用。在他们还没有开始使用之前,我们就收到了一堆需要添加的新特性。突然间,我们有了很多远超出这个应用最开始设计的需求。

软件应该是简洁的,只提供它应该提供的功能。

为了配合上面的军刀,一段优秀的代码,就应该像厨子的刀一样。一个厨刀很简洁,有特定的功能。一个专业大厨会在不同情况下用不同的刀。同样的思维方式也应该应用到代码中。

只做一件事,并做好它。

我们发现软件设计中也有同样的原则,通常叫做单一功能原则:

……单一功能原则规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的服务都应该严密的和该功能平行。

来源网址
用户的评价 浏览量:
1596
次 | 评论:
1
条 | 好评:
0