编程范式 | 青训营笔记
1. 程序语言特性
- 是否允许副作用
- 操作的执行顺序
- 代码组织
- 状态管理
- 语法和词法
2. 常见编程范式
- 命令式
- 面向过程
- 面向对象
- 声明式
- 函数式
- 响应式
3. 过程式编程
过程式编程(Procedural programming)的核心在于模块化,在实现过程中使用了状态,依赖了外部变量,导致很
容易影响附近的代码,可读性较低,后期的维护成本也较高。
- 数据与算法关联性弱
- 不利于修改和扩充
- 不利于代码重用
4. 面向对象编程
面向对象编程(Object-oriented programming)的核心在于抽象,提供清晰的对象边界。结合封装、集成、多态特性,降低了代码的耦合度,提升了系统的可维护性。
4.1 特点
- 封装
- 继承
- 多态
- 依赖注入
4.2 五大原则
- 单一职责原则SRP
- 开放封闭原则OCP
- 里氏替换原则LSP
- 依赖倒置原则DIP
- 接口分离原则ISP
4.3 问题
总是附带着所有它需要的隐含环境
5. 函数式编程
函数式编程(Functional Programming)的核心在于“避免副作用”,不改变也不依赖当前函数外的数据。结合不可变数据、函数是第一等公民等特性,使函数带有自描述性,可读性较高。
5.1 特点
- 函数是“第一等公民”
- 纯函数/无副作用
- 高阶函数/闭包
5.2 优势
可缓存、可移植、可测试、可推理、可并行
6. 响应式编程
响应式编程是一种基于异步数据流驱动、响应式、使用声明式范式的编程模型,需要遵循一定的响应式编程开发规范,并且有具体的类库实现。响应式编程基于数据流而不是控制流进行业务逻辑的推进。