软件设计与工程

用逐步变化的小程序比较抽象、契约与模块边界,再用测试、重构和持久化检查设计判断。

30 篇正文 · 2 个系列 · 更新于

从这里开始

软件设计导读:怎样形成可检查的判断

说明软件设计系列要解决的问题与待办事项主线,再从短小的版本查询练习区分程序行为、设计目的和判断依据。

推荐阅读路线

全部文章

可以沿路线选读;需要逐章学习时,进入对应系列的完整目录。

先形成可检查的设计判断

沿着同一个待办程序,观察一层抽象、一个接口和一次模块划分怎样影响修改范围。

  1. 软件设计导读:怎样形成可检查的判断原创 · 6 分钟
  2. 抽象的收益与代价:封装何时降低复杂度原创 · 9 分钟
  3. 接口与契约:两段代码怎样可靠地配合工作原创 · 25 分钟
  4. 模块边界与信息隐藏:哪些代码应该放在一起原创 · 22 分钟
完整系列:软件设计的取舍:抽象、契约与复杂度

管理状态、失败与异步工作

明确谁能修改数据,操作失败后留下什么,以及等待怎样影响成功与错误的传递。

  1. 状态与副作用:谁能修改数据,失败后保留什么原创 · 23 分钟
  2. 错误传播与异步边界:需要等待时,成功和失败怎样交回来原创 · 22 分钟
完整系列:软件设计的取舍:抽象、契约与复杂度

用行为检查支持后续演化

从约定推导测试,在重构中保持行为,再把数据保存、重新读取和格式迁移接起来。

  1. 可测试性:怎样写出能发现问题的检查原创 · 20 分钟
  2. 重构中的行为保持:换一种实现,怎样确认功能没变原创 · 20 分钟
  3. 持久化与设计演化:任务保存后,怎样重新读回来原创 · 20 分钟
完整系列:软件设计的取舍:抽象、契约与复杂度
专题全部文章 30 篇