您现在的位置:首页 > 新闻中心
程序员的瑞士军刀综合症
发布时间:2014-05-31      发布人:深圳网站建设

首先,如果你觉得这篇文章更像是在发牢骚,我先向你表示道歉。这个瑞士军刀综合征的灵感是在我跟很多项目经理、客户,甚至其他程序员的接触中备受打击的情况下想出来的。我十分沮丧于他们的视野狭窄。我认为他们都有瑞士军刀综合征。

 

瑞士军刀”这个词通常用来比喻一个东西有很多很丰富的用途,能够在很多场合下使用。

 

虽然这种东西非常有用,但它也有一些需要你警惕的地方。一个工具如果有太多的活动部件组合而成,也许最终它什么都干不了。一个工具试图什么功能都有,也许它没有一样功能能做好。

 

在我的经验中,这个道理在软件开发中同样适用。而且是经常出现类似问题,程序员试图堆砌一堆模块和代码,只是因为它们很酷;项目经理试图在项目开发过程中增加新的功能,只是因为”X”或”Y”功能看起来会让软件更有价值。客户会要求额外的软件特征和功用,只是因为他们读到或听说这些东西会对他们的业务起到“关键”作用。

 

“瑞士军刀综合征”有很多的表现:堆砌功能,过早优化,讨好无知客户等。但问题的根源是我们对软件的认知和对价值的评估:

功能多=价值大

然而,在现实生活中,在大多数情况下,反过来才是真理。代码越复杂,软件越庞大,它的价值反而会越小。我个人的一个证明这个说法的例子是一个小的Demac Media公司使用的管理软件。

最初这个应用非常简单:我们需要的是:

1)能看到所有任务都分配到哪个团队里

2)任务按周或按2周列表显示,基本的任务列表

我用一个周末把这些简单的功能实现。周一给经理演示的时候,他认为这个软件会非常有用。

但是,如果能…会更好

于是,瑞士军刀综合征发病了:伴随着一个“但是”。其它团队也要使用这个软件。就在他们还没有开始使用之前,我们就收到了一大堆他们“需要”的功能列表或增强意见。突然间,我们最初的轻量级的软件就要变成了一个超级复杂的多功能应用了。

软件设计需要有清楚的目标

 

软件应该简单实用。仍然使用瑞士军刀的例子,一个好的软件应该像一把杀猪刀。杀猪刀有清楚明确的使用方向和特殊功用。专业屠夫会选择适合他的工作的正确的刀。我们程序员对代码的认识也应该是这样的。

干一件事,干好一件事!

 

软件设计也应该遵循这样的原则,这也是我们通常说的单一责任原则:

…单一责任原则描述的是每个类应该只有一个责任,这个责任应该完全封装到这个类内部。这个类提供的所有服务都要以这个责任为目标。

总结

没有哪个公司、项目经理、程序员或客户能逃脱“瑞士军刀综合征”的毒害。我们都倾向于认为“更多”就是“更好”或“更有价值”。软件应该优雅,优雅的程序是刚好漂亮的解决一个问题。我们程序员有责任让我们编写的每一行代码都最简明、优雅和实用。


Notice: Trying to access array offset on value of type null in D:\xampp\htdocs\www.seawe.net\libs\ezsql\shared\ez_sql_core.php on line 175
没有了!  
<<上一篇
网站关键字:深圳网站建设 | 深圳网站改版 | 深圳网页设计 | 深圳包装设计公司 | 深圳广告设计公司 | 深圳平面设计公司 | HTML地图 | XML地图
友情链接:全球设计导航网 | 济南网站建设 | 鼎力淘宝小号 | 石家庄建站 | 宁波网站建设 | 企业模板建站
Copyright ©2014 seawe.net. All Rights Reserved. 深圳西威广告设计有限公司版权所有 粤ICP备14021186号   

QQ在线客服

  • 在线咨询
  • 客服001
  • 客服001

服务热线

  • 13410030062
  • 0755-28608079