编程范式 | 青训营笔记

71 阅读2分钟

课程背景

  1. 前端的主要编程语言为 JavaScript。
  2. JavaScript 作为一种融合了多种编程范式的语言,灵活性高
  3. 前端开发人员需要根据场景在不同编程范式间自如切换。
  4. 进一步需要创造领域特定语言抽象业务问题。

编程语言

机器语言

第一代计算机使用的是机器语言(二进制),难阅读和编写 屏幕截图 2023-04-20 190806.jpg

屏幕截图 2023-04-20 191010.jpg

汇编语言

用字母代替代替二进制代码,容易编写和阅读

屏幕截图 2023-04-20 191220.jpg

高级语言

独立于机器,面向过程或对象

屏幕截图 2023-04-20 191453.jpg

C/C++

C : “中级语言” 过程式语言代表

  • 可对位、字节、地址直接操作
  • 代码和数据分离倡导结构化编程
  • 功能齐全:数据类型和控制逻辑多样化
  • 可移植性强

C++ : 面向对象语言代表

  • C with Classes
  • 继承
  • 权限控制
  • 虚函数
  • 多态

Lisp

Lisp : 函数式语言代表

  • 与机器无关
  • 列表:代码即数据
  • 闭包

JavaScript

基于原型和头等函数的多范式语言

  • 过程式
  • 面向对象
  • 函数式
  • 响应式

总结

屏幕截图 2023-04-20 192934.jpg

编程范式

程序语言特点:

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

屏幕截图 2023-04-20 193334.jpg

命令式

主要是关注计算机执行的步骤

  1. 面向过程:以过程为中心
  2. 面向对象:以对象为中心

声明式

以数据结构的形式表达程序执行的逻辑

  1. 函数式:以函数为中心
  2. 响应式:以数据流为中心

过程式编程

  • 自顶向下

屏幕截图 2023-04-20 194134.jpg

  • 结构化编程

屏幕截图 2023-04-20 194303.jpg

面向过程

面向过程问题

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

面向对象

1、封装:将数据和行为封装在一个对象中,通过访问控制来保护对象的数据和行为,防止外部对象直接访问和修改

2、继承:无需重写的情况下进行功能扩充

3、多态:不同的结构可以进行接口共享,进而达到函数复用

4、 依赖注入:为了解耦合,使得代码更加灵活、可扩展和可维护

面向对象编程-五大原则

  • 单一职责原则
  • 开放封闭原则
  • 里氏替换原则
  • 依赖倒置原则
  • 接口分离原则
面向对象问题

屏幕截图 2023-04-20 200742.jpg

函数式编程

  • 函数是“第一等公民”
  • 纯函数/无副作用
  • 高阶函数跟闭包

屏幕截图 2023-04-20 201147.jpg

未完结总结:好费精力的一节课,感觉听不清楚,吐字不清晰,感觉好煎熬,下次再补后面的内容