Chinaunix首页 | 论坛 | 博客
  • 博客访问: 636235
  • 博文数量: 54
  • 博客积分: 3812
  • 博客等级: 上校
  • 技术积分: 992
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-16 20:53
文章分类

全部博文(54)

文章存档

2010年(10)

2009年(24)

2008年(20)

分类: LINUX

2009-03-24 19:58:06

    来自多方面的压力常常会让程序变得复杂(由此代价更高,bug更多),其中一种压力就是来自技术上的虚荣心理。程序员们都很聪明,常常以能玩转复杂东西和耍弄抽象概念的能力为傲,这一点也无可厚非。但正因如此,他们常常会与同行们比试,看看谁能够鼓捣出最错综复杂的美妙事物。正如我们经常所见,他们的设计能力大大走出他们的实现和排错能力,结果便是代价高昂的废品。

 

“错综复杂的美妙事物”听来自相矛盾。Unix程序员相互比的是谁能够做到“简洁而漂亮”并以此光荣,这一点虽然只是隐含在这些规则之中,但还是很值得公开提出来强调一下。
                                                   ——Doug Mcllroy

    更为常见的是(至少在商业领域里),的复杂性往往来自于项目的要求,而这些要求常常基于当月的推销热点,而不是基于顾客的需求和软件实际能够提供的功能。许多优秀的设计被市场推销所需要的大堆大堆的“特性清单”扼杀——实际上,这些特性功能几乎从未用过。然后,恶性循环开始了:比别人花哨的方法就是把自己变得更花哨。很多,庞大臃肿变成了业界标准,每个人都在使用臃肿不堪、bug极多的软件,连软件开发人员也不敢敝帚自珍。

    无论以上哪种方式,最后每个人都是失败者。

    要避免这些陷阱,唯一的方法就是鼓励另一种软件文化,以简洁为美,从从对庞大复杂的东西群起而攻之——这是一个非常重重简单解决方案的工程传统,总是设法将程序系统分解为几个能够协作的小部分,并本能地抵制任何用过多噱头来粉饰程序的企业。

    这就有点Unix文件的意味了。

 

阅读(2901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~