How to write complex software
a day ago
- 首先编写玩具驱动程序,以发现解空间的物理约束
- 从栈顶(UI或API)开始实现,并向下推进
- 按层实现软件,每层剥离最小逻辑,并将复杂性向下委托
- 编写某一层时,将下一层的API定义为当前层最理想的领域特定语言
- 在编写当前层时,先存根下层接口,然后递归地实际实现它
- 仅对IO部分使用可模拟的抽象接口;其余部分应为具体实现
- 该方法能尽早获得部分可运行的软件,并自然地在工程师之间进行委托
- 如果某层的API无法实现,则回溯并重新设计上一层的API