您现在的位置: 天下网吧 >> 网吧天下 >> 网吧行业 >> 网络追踪 >> 正文

程序员的瑞士军刀综合症

[作者:佚名 来源:不详 时间:2014-5-31我来说两句
:程序员的瑞士军刀综合症

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

瑞士军刀

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

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

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

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

功能多=价值大

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

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

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

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

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

但是,如果能…会更好

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

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

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

干一件事,干好一件事!

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

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

总结

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

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:不详 作者:佚名

我来说两句(请遵守法律法规)
声明
本文来源地址:http://www.ithome.com/
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下

扫一扫,关注天下网吧微信