UNIX编程艺术

第1章 哲学

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

第2章 历史-双流记

忘记过去的人,注定要重蹈覆辙。出自《理性生活》George Santayana
  • Unix的起源及历史,1969-1995

第3章 对比:Unix哲学同其他哲学的比较

如果你不知道怎样表现的高人一等,找个Unix用户,让他做给你看。出自《呆伯通讯3.0,1994》Scott Adams
  • 操作系统的的风格元素
  • 多任务能力:顺序程序任务-> 协作式多任务 -> Unix系统抢先式多任务

第4章 模块性: 保持清晰,保持简介

软件设计有两种方式:一种是设计得极为简介,没有看得到得缺陷,另一种设计得极为复杂,有缺陷也看不出来。第一种方式得难度要大得多。《皇帝得旧衣》CAR.Hoare
4.2 紧凑性和正交性
  • TODO 94