A PHILOSOPHY OF SOFTWARE DESIGN · 2ND EDITION · 中文学习伴侣
读懂不难,
难的是写代码时认得出来
John Ousterhout 的《软件设计的哲学》讲的不是知识,而是判断力:什么样的模块是深的,哪里在泄漏信息,这个异常能不能干脆不存在。本站陪你读原书 22 章,用几百道原创 C/C++ 题练眼力,再在一个故意写得很"战术"的键值存储里亲手重构。
三层学法
全书地图
这本书只讲一件事:复杂性。前三章定义敌人并给出心态,第 4~11 章是"把模块做深"的各种手段,第 12~18 章处理"模糊"(注释、命名、一致性),最后三章谈趋势、性能和品味。点击节点进入章节,读完的会变绿。
延伸
APOSD 与 Clean Code
Ousterhout 与 Robert Martin 在函数长度、注释、TDD 上的分歧,各自的理由,和本站的看法。
与 OSTEP 对照阅读
Unix I/O 为什么是深接口、NFS 为什么"卡住重试"、巫毒常量和配置参数……两本书原来在说同一件事。
AI 时代读这本书
代码越来越便宜,什么变得更贵?用红旗清单审查 AI 写的代码。
设计评审清单
按"设计接口 / 写实现 / 写注释 / 改代码 / 评审"分组,可以打印出来放在手边。
书外的作者(均为站外链接,本站只指路):
- Thoughts For The Weekend:Ousterhout 2024 年春季在 Stanford CS 111 每周五课末讲的一组短谈话,主题是一般的人生看法,不是软件设计;2026 年 1 月上传到 YouTube(作者的说明)。
- 《The Art of Readable Code》(Dustin Boswell、Trevor Foucher 著):Ousterhout 2021 年读完后推荐过,评价是想法很好,理念与本书相容,只是层次更低,讲编码多于讲设计(2021-01)。想在"一行代码怎么写"上多练的读者可以接着读。
- software-design-book 讨论组:书中给出的读者讨论组,作者经常回帖;各章"边界与反方"里的"讨论组"块都取材于此。
原书:John Ousterhout,A Philosophy of Software Design, 2nd Edition(Yaknyam Press,2021)。本站是个人学习用的辅助材料,不是原书的翻译或替代:所有讲解、代码与题目都是本站原创,书中观点以原书为准,请阅读原书。学习进度和答题记录只保存在你的浏览器里。