编程范式

101 阅读2分钟
  • 命令:如何操作"函数"
  • 声明式 声明结果"数据流"
  • lisp:函数式语言代表: 1. 与机器无关 闭包 2. 列表:代码即数据
  • JavaScript:基于原型和头等函数的多范式语言"多项式代表"
  • 过程式编程:自下而上;结构化编程(顺序,选择,循环)
  • 面向对象:封装(客观事物,集体的类);继承(某对象获得另一个方法);多态(相同的在不同条件下表现方式不同);依赖注入(程序运行过程中,若对另一个对象使用无需代码创建而依赖外部注入)
  • 面向过程缺点:
  1. 数据与算法关联弱,函数与操作数间未有体现
  2. 不利于修改补充,未有封装概念
  3. 不利于代码重用
  • 五大原则:
  1. 单一职责原则(功能单一)
  2. 开放封闭原则(扩展开放,更改封闭)
  3. 里式替换原则(子类替换父类,可出现父类出现的任何地方)
  4. 依赖倒置原则(上依赖下)抽象接口
  5. 接口分离原则(接口区分)
  • 响应式编程:
  1. 数据流,操作符(借助RxJs工具库)
  2. 观察者模式(订阅模式做数据改变)
  3. 迭代器模式(数据支持不断推送过来)
  4. Promise(数据不会一次,持续的)/EvenTarget(向上传导)
  • 操作符;
  • "compose"响应式编程
  • 多播,合并,过滤,转化,异常处理
  • 响应式Monad
  • 去除嵌套的observable
  • 领域特定语言(DSL)HTML.SQL
  • SQL Tokem分类:注释,关键字,操作符,空格,字符串,变量
  • Parser(语法原则)
  • 推导式:非终结符->(非终结符/终结符)的关系
  • 终结符:构成句子的实际内容,可简单理解为词汇分析中的token
  • 非终结符:符号或变量的存根集合,它们表在句子中不同类型的短语或子句
  • _Parser_LL:从左到右检查,从左到右构建语法数
  • _Parser_LR:从左到右检查,从右到左构建语法数(底向上,右到左)