《TAOUP》读书笔记

我没有写错,本文所记述的不是 Knuth 的那本举世瞩目的 TAOCP(计算机程序设计艺术),而是 ESR 所写的 TAOUP,即 The Art of UNIX Programming(UNIX 编程艺术)。

哲学

Unix 的设计哲学总体上可以概括为以下几点:

  1. 模块原则:使用简洁的接口拼合简单的部件
  2. 清晰原则:清晰胜于机巧
  3. 组合原则:设计时考虑拼接组合
  4. 分离原则:策略同机制分离,接口同引擎分离
  5. 简洁原则:设计要简洁,复杂度能低则低
  6. 吝啬原则:除非却无它法,不要编写庞大的程序
  7. 透明性原则:设计要可见,以便审查和调试
  8. 健壮原则:健壮源于透明与简洁
  9. 表示原则:把知识叠入数据以求逻辑质朴而健壮
  10. 通俗原则:接口设计避免标新立异
  11. 缄默原则:如果一个程序没什么好说的,就沉默
  12. 补救原则:出现异常时,马上退出并给出足够错误信息
  13. 经济原则:宁花机器一分,不花程序员一秒
  14. 生成原则:避免手工hack,尽量编写程序去生成程序
  15. 优化原则:雕琢前先要有原型,跑之前先学会走
  16. 多样原则:决不相信所谓“不二法门”的断言
  17. 扩展原则:设计着眼未来,未来总比预想来得快

所有的 Unix 哲学浓缩为一条铁律就是 KISS 原则,即 Keep It Simple, Stupid!