编程范式 | 青训营笔记

53 阅读2分钟

在这节课之前,其实我对这个概念迷迷糊糊的,各种编程范式的特点也都不太清楚,都只知道每个的好处,然后很乱,特别是面向对象和函数式编程都在学习,今天听完之后豁然开朗

编程语言

为什么需要编程语言?

很简单的一句话,机器不懂你人在说什么......所以我们需要编程语言和机器对话。

汇编语言

用字母代替数字

高级语言

进一步贴近自然语言,贴近人的思维模式,编写的少,翻译出来的大,在这里就不介绍其他语言了,咱们就只介绍javascript

多范式代表JavaScript

因为是后来的语言,js吸收其他语言的一些特点,是使用范围最广的一门语言,基于原型和头等函数的多范式语言特点:

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

编程范式

过程式编程

把操作用过程进行分组

  • 自顶向下
  • 结构化编程

面向过程问题:

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

面向对象编程

  • 封装:关联数据与算法
  • 多态:无需重写的情况下进行功能扩充
  • 继承
  • 依赖注入

五大原则

  • 单一职责原则
  • 开放封闭原则
  • 里式替换原则
  • 依赖倒置原则
  • 接口分离原则

面向编程的问题在于,你需要将整个类引入,即使你不需要其中的其他内容。

函数式编程

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

优势

  • 可缓存
  • 可移植
  • 可测试
  • 可推理
  • 可并行

响应式编程

  • 异步/离散的函数式编程

    • 数据流

    • 操作符

      • 过滤
      • 合并
      • 转化
      • 高阶
  • 观察者模式

  • 迭代器模式

  • Promise/EventTarget超集

领域特定语言

如HTML、SQL