《架构整洁之道》读书笔记 - 编程范式篇

概述

最近阅读了 Robert C. Martin 的《架构整洁之道》中关于编程范式的章节。这部分主要介绍了三种主要的编程范式:结构化编程、面向对象编程和函数式编程。每种范式都通过某种方式对程序控制权或数据进行了限制。

结构化编程

由 Dijkstra 在 1968 年提出 核心思想:限制直接转移控制权 引入了模块化和测试的概念 去除了无限制的 GOTO 语句,引入了 if/then/else 和 do/while/until 等结构 主要贡献:让程序可以被分解为可证明的单元

面向对象编程

核心特性:封装、继承和多态 最重要的是多态,它为插件架构提供了基础 通过多态实现了依赖反转 允许控制源代码依赖关系的方向 帮助解决跨模块和跨架构的依赖管理问题

函数式编程

基于 λ 演算 核心思想:不可变性 所有变量都是不可变的 没有赋值语句 通过管理状态的可变性来控制程序的复杂度

个人思考

这三种范式各自解决了不同的问题:

  • 结构化编程解决了直接转移控制权的问题
  • 面向对象编程解决了间接转移控制权的问题
  • 函数式编程解决了变量赋值的问题

在实际开发中,这些范式常常是混合使用的。理解它们的本质和限制,有助于我们在架构设计时做出更好的决策。

实践启示

在设计架构时,要充分利用多态来管理依赖关系 尽可能使用不可变数据,减少状态管理的复杂度 合理划分模块,保证每个组件都是可测试的 在适当的场景选择合适的范式