Blog icon indicating copy to clipboard operation
Blog copied to clipboard

《A Philosophy Of Software Design》读书笔记

Open vonzhou opened this issue 6 years ago • 0 comments

1. 介绍

一切的一切都是复杂性

2. 复杂性的定义

Complexity: 软件系统的结构导致很难去理解或修改系统。

复杂性的表现:

  • 修改放大 change amplification
  • 认知负载 cognitive load
  • 未知的未知 unknown unknown

造成复杂性的原因:

  • 依赖
  • 晦涩

3. 代码不仅仅要可运行

4. 模块应该深

模块的2方面:接口,实现

模块的使用者(依赖者)只需要关心接口提供的抽象;强大复杂的功能隐藏在后面。

示例:Java中的对象反序列化 vs Unix IO接口。

接下来会讲到实现 deep module的技术:信息隐藏,

5.信息隐藏

vonzhou avatar Aug 08 '19 14:08 vonzhou