编程范式 | 青训营笔记

29 阅读2分钟

Programming paradigm

01内容介绍

背景

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

课程目标

1.了解不同编程范式的起源和适用场景 2.掌握JavaScript 在不同的编程范式特别是函数式编程范式的使用 3.掌握创建领域特定语言的相关工具和模式

收获

对课程目标的内容有了大概的了解,浏览过示范点,很大可能没有实际掌握

02编程语言

在于让人能够更好的操作机器,让计算机理解我们需要做什么 机器语言→汇编语言→高级语言

C:“中级语言”过程式语言代表C++:面向对象语言代表Lisp:函数式语言代表JS:基于原型和头等函数的多范式语言
代码和数据分离倡导结构化编程C with Classes与机器无关过程式
功能齐全:数据类型和控制逻辑多样化继承列表:代码即数据面向对象
可移植能力强权限控制闭包函数式
可对位 字节 地址直接操作虚函数响应式
多态

03编程范式

过程式

自顶向下 结构化编程

问题

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

面向对象

封装:关联数据与算法 继承:无需重写的情况下进行功能扩充 多态:不同的结构可以进行接口共享,进而达到函数复用 依赖注入*:去除代码耦合

面向对象编程_五大原则

  1. 单一职责原则SRP(Single Responsibility Principle)
  2. 开放封闭原则oCP(Open - Close Principle)
  3. 里式替换原则LSP(the Liskov Substitution Principle LSP)
  4. 依赖倒置原则DIP(the Dependency Inversion Principle DIP)
  5. 接口分离原则ISP(the Interface Segregation Principle ISP)

问题

面向对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一个香蕉,但得到的却是一个大猩猩拿着香蕉,而且还有整个从林。 Joe Armstrong(Erlang创始人)

函数式编程

函数是“第一等公民”

纯函数/无副作用

高阶函数 / 包

响应式编程

Observable 操作符 Monad

04领域特定语言

  • 词法解析
  • 语法分析
  • 工具生成
  • 解释与编译