小、专、能组合 — UNIX 哲学
这一章讲四件事: 「一个软件只做一件事」为什么是起点; 过滤器与文本流怎么让软件像水管一样组合;沉默与最小意外为什么是组合的前提; 三系统论怎么回 答「能不能一步到位」。 主走查:两个单责小命令拼成一条流水线,数据在每一站长什么样。
1. 为什么值得为 1969 年的操作系统单开一章
UNIX 是 1969 年诞生的操作系统(管理整台计算机的硬件、以及跑在其上的一切程序的底层系统)。 半个多世纪过去,它的后裔仍跑在全球的服务器、手机和开发机上。 原书把这一点当成了论证本身:从信息技术的更新速度看, 「这确实是一个傲人的成绩」——而它成功的理由,是早期程序员做对了一组设计判断; 这些判断沉淀成一套思想,「虽然 UNIX 思想源于 UNIX 文化,但它在任何软件开发领域都有借鉴意义」1。
本书把 UNIX 的遗产分成两层,本拆解按因果链重组2:
- UNIX 思想(17 条原则):怎么写单个程序——模块化、清晰、简单…… 大部分与前面各章的原则同源,本章不再重复,只在§5 做一张对照表;
- UNIX 哲学(9 条定理):怎么组织软件群——小、专、组合。 这是 UNIX 真正独特、且今天仍在主流的东西,本章的主菜。