编程范式 | 青训营笔记

98 阅读2分钟

前端主要编程语言为JavaScript,该语言融合多种编程范式,灵活性极高,前端人员需要在不同编程间根据不同场景灵活切换

编程语言分为机器语言、汇编语言、中级语言:C、高级语言:C++、Lisp、JavaScript

C语言:面向过程

C++:面向对象

Lisp:函数式语言

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

过程式:自顶向下、结构化编程、问题:数据和算法关联弱、不利于修改和扩充、不利于代码重用   面向对象编程优点:封装、继承、多态、依赖注入

函数式编程优点:聚合转发,可缓存、可移植、可测试、可推理、可并行,

可当做容器的类型,类型支持对容器内元素进行操作:

常见的functor:Array(lterable).map,Promise.then

可以去除嵌套容器的容器类型:

常见monad:Array.flatMap Promise.then

也可直接对两个容器进行操作

响应式编程:异步/离散的函数式编程:数据流和操作符(需要借助RcJS的帮助)

Observable:观察者模式和迭代器模式

领域特定语言(DSL):应用与特定领域的语言,如HEML、SQL

1、lexer:定义词法规则

2、Parse:通过上下文关系制定语法规则

3、Tools:通过工具产生语法分析器,得到语法数

4、Visitor:遍历语法数、执行

SQL Token分类:注释、关键字、操作符、空格、字符串、变量

通过本次课知道了各种语言的发展过程,各种高级语言的优点和缺点和领域特定语言创建的相关工具和模式。各种高级语言的优劣也决定了在不同场景需选择不同语言,以有针对性的解决不同的业务问题。这就要求我们必须对每种语言都熟练掌握并灵活切换运用。