编程范式 | 青训营笔记

91 阅读2分钟

今天学习的是编程范式,以下是今天的课程结构。

  • 编程语言
  • 编程范式
  • 领域特定语言

编程语言

编程语言的发展历史:

机器语言——汇编语言——高级语言

image.png

编译器可以将高级语言转变为汇编语言。

以下介绍几种常见的高级语言。

C/C++

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

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

C 语言是面向过程的语言。

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

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

Lisp:函数式语言代表

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

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

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

image.png

编程范式

编程范式是一种根据编程语言的特性来分类编程语言的方法。不同的编程范式有不同的结构,特征和观点,关于如何解决常见的编程问题。

image.png

image.png

过程式编程

  • 自顶向下
  • 结构化编程

image.png

image.png

面向过程的编程有什么缺点?

答:

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

面向对象编程

面向对象编程的特点:

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

面向对象编程_封装

  • 关联数据和算法

面向对象编程_继承

  • 无需重写的情况下进行功能扩充

面向对象编程_多态

  • 不同的结构可以进行接口共享,进而达到函数复用

面向对象编程_依赖注入

  • 去除代码耦合

面向对象编程_五大原则

  • 单一指责原则 SRP
  • 开放封闭原则 OCP
  • 里氏替换原则 LSP
  • 依赖倒置原则 DIP
  • 接口分离原则 ISP

面向对象的编程有什么缺点?

答:

image.png

函数式编程

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

image.png

image.png

image.png

image.png

image.png

image.png

image.png

响应式编程

  • 异步/离散的函数式编程
    • 数据流
    • 操作符
      • 过滤
      • 合并
      • 转化
      • 高阶

image.png

image.png

image.png

image.png

领域特定语言

  • Domain-specific language(DSL):应用于特定领域的语言
    • HTML
    • SQL

语言运行

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png