unix设计哲学

说到Unix为我们所带来的软件开发的哲学,我必需要说一说。Unix遵循的原则是KISS(Keep
it simple, stupid)。在http://en.wikipedia.org/wiki/Unix_philosophy 上有很多的基本上大同小异的Unix哲学,都是很经典的。

 

Doug McIlroy 是认为UNIX的哲学是这样的:三条哲学,简明扼要,就是这三条哲学贯穿着整个Unix世界。尤其是第一条“do
one thing and do it well”真是相当精彩!

 

l         Write programs that do one thing and do it well.

l         Write programs to work together.

l         Write programs to handle text streams, because that is a universal
interface.

 

只要是Unix的程序员,他们会比别的程序员在任何时候都会不停地强调着这三条哲学。

 

而《The Art of Unix Programming》总结了下面这些哲学,都是至理名言啊。

  • Rule of Modularity: Write simple parts connected by clean interfaces.
  • Rule of Clarity: Clarity is better than cleverness.
  • Rule of Composition: Design programs to be connected to other programs.
  • Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
  • Rule of Simplicity: Design for simplicity; add complexity only where you must.
  • Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
  • Rule of Transparency: Design for visibility to make inspection and debugging easier.
  • Rule of Robustness: Robustness is the child of transparency and simplicity.
  • Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
  • Rule of Least Surprise: In interface design, always do the least surprising thing.
  • Rule of Silence: When a program has nothing surprising to say, it should say nothing.
  • Rule of Repair: When you must fail, fail noisily and as soon as possible.
  • Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
  • Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
  • Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
  • Rule of Diversity: Distrust all claims for "one true way".
  • Rule of Extensibility: Design for the future, because it will be here sooner than you think.

X Windows 的设计者 Mike Gancarz 给出了下面九条哲学思想

  1. Small is beautiful.
  2. Make each program do one thing well.
  3. Build a prototype as soon as possible.
  4. Choose portability over efficiency.
  5. Store data in flat text files.
  6. Use software leverage to your advantage.
  7. Use shell scripts to increase leverage and portability.
  8. Avoid captive user interfaces.
  9. Make every program a filter.

在今天,这种思想依然被传承着,在影响着世界上各个角落的每一个程序员。

时间: 2024-08-02 19:37:46

unix设计哲学的相关文章

[总结]Unix设计哲学 <<Unix编程艺术>>

转载请注明出处:http://blog.csdn.net/horkychen 学习了<<Unix编程艺术>>第一章关于哲学的部分, 做个汇总.现在对精简设计, 舍弃华而不实是普遍认可的.但早在Unix发展的时期, 这一条原则却是在实践中不断提炼出来的. 这就是最为根本的一条:  KISS - Keep it Simple, Stupid!  这句话其实常见, 尤其是花过功夫学习英文的朋友. 而这个原则可以应用在生活的各个方面. 这一原则是历经多少项目的检验结果, 而我们正是站在一位

我来说说Android touch 系统的设计哲学

环境 设备:nexus4 ,系统:Android4.4.2,源代码:Android api 19, debug工具: android studio. 目的 分析Android的touch传递机制,为实现各种hack效果(比如继承listview,实现下拉刷新效果)和复杂的交互效果提供理论支撑. 研究对象 activity . viewGroup.view的子类. Android对touch系统的设计哲学 touch事件包括DOWN MOVE UP 三类基本事件,touch系统里面(这里除去Act

精简、透明、开放——TeamCola背后的产品设计哲学

每个产品的背后,都代表着一种价值观和审美,TeamCola也不例外.如果你要问TeamCola代表了什么,我们认为它代表了精简.透明和开放:如果你要问TeamCola能带来什么,我们认为它能带来自律.高效和信任. 想通过这篇博客,谈谈我们如何通过设计小团队工时记录和统计软件--TeamCola来表达我们对世界的理解和认识,以及它又会如何反过来影响和改变着这个世界--哪怕是很小的一部分,比如你的团队. 1.少即是多--TeamCola之精简 "少即是多/Less is more"--出自

解耦设计手法小结

设计是一个平衡的产物,需要在各个约束条件下(组织目标,业务目标,开发流程,技术能力,学习及维护成本等)不断地进行演进. 我们虽然不提倡做大而全的设计,但会坚持进行基础性设计,以保证我们的设计一直在正确的方向上演进. 设计演进的过程既可以是自上而下的,也可以是自下而上的. 基本设计原则 业界普遍被接受的设计原则不再赘述.这里特别针对基于开源项目的软件,其总体主旋律将是:跟随,扩展,贡献,其中跟随将是一个基本能力,反观深度定制的方式会遭遇越来越多的尴尬.落实在设计上,其最核心的设计原则:隔离自有业务

程序员必读书单(转)

  原文链接:http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的

程序员必读书单

关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的程序设计能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列): 理解计算机科学的核心概念

目前硅谷最火最有名的高科技创业公司都有哪些?

摘要: 1.目前硅谷最火最有名的高科技创业公司都有哪些? 在硅谷大家非常热情的谈创业谈机会,我也通过自己的一些观察和积累,看到了不少最近几年涌现的热门创业公司.我给大家一个 1.目前硅谷最火最有名的高科技创业公司都有哪些? 在硅谷大家非常热情的谈创业谈机会,我也通过自己的一些观察和积累,看到了不少最近几年涌现的热门创业公司.我给大家一个列表,这个是华尔街网站的全世界创业公司融资规模评选.它本来的标题是billion startup club,我在去年国内讲座也分享过,不到一年的时间,截至到201

对硅谷和硅谷科技公司的十四问

摘要: 1.目前硅谷最火最有名的高科技创业公司都有哪些? 在硅谷大家非常热情的谈创业谈机会,我也通过自己的一些观察和积累,看到了不少最近几年涌现的热门创业公司.我给大家一个 1.目前硅谷最火最有名的高科技创业公司都有哪些? 在硅谷大家非常热情的谈创业谈机会,我也通过自己的一些观察和积累,看到了不少最近几年涌现的热门创业公司.我给大家一个列表,这个是华尔街网站的全世界创业公司融资规模评选.它本来的标题是billion startup club,我在去年国内讲座也分享过,不到一年的时间,截至到201

对硅谷和硅谷科技公司的十四问:估值泡沫/大数据等

从硅谷公司哪家强,到人人在议的泡沫问题,大数据和人工智能如何结合?2015年的科技前瞻是怎样一副图景?来自硅谷的Coursera软件工程师董飞将其近日在斯坦福公开讲座上的干货和各种场合的问答整理出来和大家分享.文中有他的一手从业经验,也有其对亲身就职或深度研究过的一些公司具体分析,如Hadoop.Amazon.LinkedIn等.董飞的知乎页面在这里,邮箱是dongfeiwww@gmail.com. 1.目前硅谷最火最有名的高科技创业公司都有哪些? 在硅谷大家非常热情的谈创业谈机会,我也通过自己