Blog
Blog copied to clipboard
《A Philosophy Of Software Design》读书笔记
1. 介绍
一切的一切都是复杂性
2. 复杂性的定义
Complexity: 软件系统的结构导致很难去理解或修改系统。
复杂性的表现:
- 修改放大 change amplification
- 认知负载 cognitive load
- 未知的未知 unknown unknown
造成复杂性的原因:
- 依赖
- 晦涩
3. 代码不仅仅要可运行
4. 模块应该深
模块的2方面:接口,实现
模块的使用者(依赖者)只需要关心接口提供的抽象;强大复杂的功能隐藏在后面。
示例:Java中的对象反序列化 vs Unix IO接口。
接下来会讲到实现 deep module的技术:信息隐藏,