【wiki百科】Unix哲学

http://zh.wikipedia.org/wiki/Unix%E5%93%B2%E5%AD%A6

 

Unix哲学是一套基于Unix操作系统顶级开发者们的经验提出的软件开发的准则和哲学。

目录

[隐藏]

[编辑]McIlroy:A Quarter Century of Unix

Douglas McIlroy是Unix系统上管道机制的发明者,也是Unix文化的缔造者之一。他归纳的Unix哲学如下:

程序应该只关注一个目标,并尽可能把它做好。让程序能够互相协同工作。应该让程序处理 文本数据流,因为这是一个通用的 接口

更加简化的版本是:做一件事,做好它。虽然只有第三条是特指Unix系统的,但Unix开发者们常常同时强调这三个信条。

[编辑]Pike:Notes on Programming in C

罗勃·派克在他的《Notes on Programming in C》中提到了以下格言。虽然这些规则是关于程序设计的,但作为Unix哲学丝毫不为过:

  • 规则一:你永远不会知道你的程序会在什么地方耗费时间。程序的瓶颈常常出现在意想不到的地方,因此在你确信找到瓶颈后再动手优化代码吧。
  • 规则二:测试代码。只有在你详细测试了代码,并且发现一部分代码耗费了绝大部分的运行时间时再对程序作速度优化。
  • 规则三:功能全面的算法(fancy algorithm)在处理小规模问题时效率很低,这是因为算法时间效率中的常量很大,而问题往往规模很小。除非你知道你遇到的常常是复杂的情况,否则就让代码丑陋但是简单而高效吧。(即使问题规模确实很大,也首先尝试第二条规则。)
  • 规则四:功能全面的算法比简单的算法更容易产生Bug,更难实现。尽量使用简单的算法和数据结构
  • 规则五:数据决定一切。如果选择的数据结构能很好的管理数据,算法部分往往不言自明。记住,数据结构,而非算法,才是编程的关键。
  • 规则六:没有第六条规则。

Pike的第一、二条规则重申了高德纳的著名格言:“过早的优化是一切罪恶的根源。”[1] Pike的第三、四条规则被肯·汤普逊改述成:“疑惑不定之时最适合穷举。”事实上,这两条规则也是KISS原则的具体表现。规则五在之前Fred Brooks人月神话中也被提及。Jon Bentley的《Programming Pearls》中也有一章阐述了相同的设计哲学。此规则作为“如果你的数据结构很好,那么控制它的算法就无关痛痒了”的例子常常被简化成“简约地写代码,聪明地用数据”。第六条规则当然只是Pike针对蒙提·派森之小品Bruces sketch的幽默发挥而已了。

[编辑]Mike Gancarz:UNIX哲学

1994年,X Window系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了《The UNIX Philosophy》,提出了9条训格之言:

  • 一:小即是美。
  • 二:让程序只做好一件事。
  • 三:尽可能早地创建原型。
  • 四:可移植性比效率更重要。
  • 五:数据应该保存为文本文件
  • 六:尽可能地榨取软件的全部价值。
  • 七:使用shell脚本来提高效率和可移植性。
  • 八:避免使用可定制性低下的用户界面。
  • 九:所有程序都是数据的过滤器。

此外还有十条原则则并不为所有人认同,甚至还是争论的焦点(如宏内核微内核之争):

  • 一:应该允许用户定制操作环境。
  • 二:让操作系统核心小而轻。
  • 三:使用小写字母并尽量简短。
  • 四:节约纸张,保护树林。
  • 五:沉默是金。
  • 六:并行地思考。
  • 七:部分加部分大于整体。
  • 八:寻找问题的帕雷托法则
  • 九:程序随需求而增长(Worse is better)。
  • 十:层级地思考。

[编辑]糟糕的更好

Richard P. Gabriel提议Unix的一个关键优势是他称作“糟糕的更好”的设计哲学。在“糟糕的更好”的设计风格下,接口和实现的简单性比系统的任何其他属性都更重要,包括准确性、一致性和完整性。Gabriel主张这种设计风格拥有关键的进化优势,尽管他也怀疑一些结果的质量。

[编辑]相关内容

[编辑]参考资料

[编辑]注释

  1. ^Knuth, Donald: Structured Programming with Goto Statements.Computing Surveys 6:4 (1974), 261–301.

[编辑]外部链接

### 回答1: Wiki百科词典下载百科云盘提供了一个便捷的途径,方便用户轻松地下载百科内容。Wiki百科词典是一个非常知名且重要的百科全书,其中包含了各种各样的信息,涵盖了历史、科学、文学、艺术、文化等多个领域,为了方便用户更好地使用,百科云盘就应运而生了。 百科云盘是一个云存储服务平台,为用户提供了一个免费存储、共享和备份各种文档、图片和视频的途径。用户可以在百科云盘中存储Wiki百科词典的内容,这样就可以方便地在任何地方随时查看百科内容,而不会受到网络连接不好的影响。此外,用户还可以将百科内容下载到自己的电脑中,这样更加方便离线使用。 百科云盘拥有一个先进的文件上传、下载和分享系统,用户可以轻松地上传和下载文件,并与其他人共享文件。此外,百科云盘还具有强大的隐私保护功能,用户可以选择将他们的文件设置为私有或公共,以便控制谁可以查看和下载他们的文件。 总的来说,Wiki百科词典下载百科云盘提供了一个非常方便的途径,使用户可以更轻松地访问和共享百科内容,无论是在线还是离线,都能够自由地查询各种各样的知识和信息。 ### 回答2: 百度百科是中国最大的在线百科全书,其中包含了来自全球各地数百万的词条。这些词条涵盖了各种领域的知识,包括历史、地理、文化、科技、艺术等等。使用百度百科可以帮助人们了解更多的知识,并且可以学习到许多新的内容。近年来,由于数据安全和隐私保护的原因,越来越多人开始使用百科云盘来下载百度百科的内容。百科云盘是百度百科提供的一种在线存储服务,用户可以通过这个服务将百度百科上的文章、图片、视频等内容下载到自己的电脑或移动设备上。使用百科云盘,用户不仅可以方便地浏览和学习百度百科的知识,还可以将这些内容保存在本地,方便随时查看和使用。总之,百度百科百科云盘为人们提供了一个更加便利、快捷的学习方式,帮助人们更好地了解和掌握知识。 ### 回答3: 百科云盘是一款非常方便的工具,能够供人们使用。通过百科云盘,我们可以下载wiki百科词典。wiki百科是一个由全世界网友共同编辑的百科全书,它包含了很多的文章和信息。在学习和生活中,我们经常需要查阅一些知识资料,而wiki百科是一个良好的资源库。因此,如果我们能够下载wiki百科词典,并将其保存在百科云盘上,那么就能够随时随地访问和使用这些信息。百科云盘还可以实现云端备份,这意味着我们的数据将会非常安全,不会丢失。另外,百科云盘还拥有一个优秀的界面和易用性,使得我们可以轻松地使用它进行文件的上传与下载。总的来说,百科云盘是一个非常实用的工具,它不仅可以帮助我们下载wiki百科词典,还能够帮助我们更好地存储和管理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值