Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1281410
  • 博文数量: 168
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 1696
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 13:17
文章分类

全部博文(168)

文章存档

2015年(6)

2014年(9)

2013年(47)

2012年(11)

2011年(13)

2010年(18)

2009年(11)

2008年(42)

2007年(11)

分类: IT业界

2008-05-02 19:08:32

UNIX哲学基础 -- 简洁原则:设计要简洁,复杂度能低则低

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

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

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

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

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

这就有点Unix文化的意味了。
阅读(1300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~