在线阅读:https://Cactus-proj.github.io/A-Philosophy-of-Software-Design-zh/
斯坦福教授、Tcl 语言发明者 John Ousterhout 的著作《A Philosophy of Software Design》,自出版以来,好评如潮。 按照 IT 图书出版的惯例,如果冠名为“实践”,书中内容关注的是某项技术的细节和技巧; 冠名为“艺术”,内容可能是记录一件优秀作品的设计过程和经验; 而冠名为“哲学”,则是一些通用的原则和方法论,这些原则方法论串起来,能够形成一个体系。 正如”知行合一”、“世界是由原子构成的”、“我思故我在”,这些耳熟能详的句子能够一定程度上代表背后的人物和思想。 用一句话概括《A Philosophy of Software Design》,软件设计的核心在于降低复杂性。
- 前言
- 第 1 章 介绍
- 第 2 章 复杂性的本质
- 第 3 章 工作代码是不够的
- 第 4 章 模块应该是深的
- 第 5 章 信息隐藏(和泄漏)
- 第 6 章 通用模块更深入
- 第 7 章 不同的层,不同的抽象
- 第 8 章 降低复杂性
- 第 9 章 在一起更好还是分开更好?
- 第 10 章 定义不存在的错误
- 第 11 章 设计它两次
- 第 12 章 为什么要写注释呢?有四个理由
- 第 13 章 注释应该描述代码中不明显的内容
- 第 14 章 选择的名字
- 第 15 章 先写注释
- 第 16 章 修改现有的代码
- 第 17 章 一致性
- 第 18 章 代码应该是显而易见的
- 第 19 章 软件发展趋势
- 第 20 章 设计性能
- 第 21 章 结论
- 总结
本项目基于 VuePress 进行开发,以提供比 Github Mardown 更佳的阅读体验
git clone https://github.com/Cactus-proj/A-Philosophy-of-Software-Design-zh.git
cd A-Philosophy-of-Software-Design-zh/
npm install # 安装 VuePress@next
npm run dev # 编译并打开网页预览
本项目为未授权的翻译
- 对于书籍内容,原作者保留所有权利
- 对于中文翻译以及其他的项目文件,按照 MIT 协议授权
NOTE: 由于是未授权翻译,中文翻译文本的版权不明确,因此本项目仅作维护性更新(保持CI可用)。 不再主动对翻译文本做出更新。