编程范式|青训营笔记

64 阅读2分钟

前言

JavaScript 作为一种融合了多种编程范式的语言,灵活性非常高。前端开发人员需要根据场景在不同编程范式间自如切换。进一步需要创造领域特定语言抽象业务问题。 本次课程帮助我们了解不同编程范式的起源和适用场景。掌握 JavaScript 在不同的编程范式特别是函数式编程范式下的使用。

程序语言特性

  • 是否允许副作用
  • 操作的执行顺序
  • 代码组织
  • 状态管理
  • 语法和词法

常见编程范式

命令式
  • 面向过程
  • 面向对象
声明式
  • 函数式
  • 响应式

面向过程编程

过程式编程(Procedural programming)的核心在于模块化,在实现过程中使用了状态,依赖了外部变量,导致很容易影响附近的代码,可读性较低,后期的维护成本也较高。

缺点有:

  • 数据与算法关联性弱
  • 不利于修改和扩充
  • 不利于代码重用

面向对象编程

面向对象编程(Object-oriented programming)的核心在于抽象,提供清晰的对象边界。结合封装、集成、多态特性,降低了代码的耦合度,提升了系统的可维护性。

特点

  • 封装
  • 继承
  • 多态
  • 依赖注入

五大原则

  1. 单一职责原则SRP
  2. 开放封闭原则OCP
  3. 里氏替换原则LSP
  4. 依赖倒置原则DIP
  5. 接口分离原则ISP

存在的问题

总是附带着所有它需要的隐含环境

函数式编程

函数式编程(Functional Programming)的核心在于“避免副作用”,不改变也不依赖当前函数外的数据。结合不可变数据、函数是第一等公民等特性,使函数带有自描述性,可读性较高。

特点

  1. 函数是“第一等公民”
  2. 纯函数/无副作用
  3. 高阶函数/闭包

优势

  1. 可缓存
  2. 可移植
  3. 可测试
  4. 可推理
  5. 可并行

响应式编程

响应式编程是一种基于异步数据流驱动、响应式、使用声明式范式的编程模型,需要遵循一定的响应式编程开发规范,并且有具体的类库实现。响应式编程基于数据流而不是控制流进行业务逻辑的推进。

小结

编程范式是编写代码的基本方式和方法。选择合适的编程范式可以提高代码的可重用性、可维护性和可测试性。无论使用哪种编程范式,都应该遵循良好的编码规范和惯例,使得代码易于理解和维护。