在这节课之前,其实我对这个概念迷迷糊糊的,各种编程范式的特点也都不太清楚,都只知道每个的好处,然后很乱,特别是面向对象和函数式编程都在学习,今天听完之后豁然开朗
编程语言
为什么需要编程语言?
很简单的一句话,机器不懂你人在说什么......所以我们需要编程语言和机器对话。
汇编语言
用字母代替数字
高级语言
进一步贴近自然语言,贴近人的思维模式,编写的少,翻译出来的大,在这里就不介绍其他语言了,咱们就只介绍javascript
多范式代表JavaScript
因为是后来的语言,js吸收其他语言的一些特点,是使用范围最广的一门语言,基于原型和头等函数的多范式语言特点:
- 过程式
- 面向对象
- 函数式
- 响应式
编程范式
过程式编程
把操作用过程进行分组
- 自顶向下
- 结构化编程
面向过程问题:
- 数据与算法关联弱
- 不利于修改和补充
- 不利于代码重用
面向对象编程
- 封装:关联数据与算法
- 多态:无需重写的情况下进行功能扩充
- 继承
- 依赖注入
五大原则
- 单一职责原则
- 开放封闭原则
- 里式替换原则
- 依赖倒置原则
- 接口分离原则
面向编程的问题在于,你需要将整个类引入,即使你不需要其中的其他内容。
函数式编程
- 函数是第一等公民
- 纯函数/无副作用
- 高阶函数/闭包
优势
- 可缓存
- 可移植
- 可测试
- 可推理
- 可并行
响应式编程
-
异步/离散的函数式编程
-
数据流
-
操作符
- 过滤
- 合并
- 转化
- 高阶
-
-
观察者模式
-
迭代器模式
-
Promise/EventTarget超集
领域特定语言
如HTML、SQL