编程范式|青训营笔记

129 阅读3分钟

编程语言

为什么需要编程语言? 机器没有灵魂,只是一个工具,程序员产生指令,控制机器,因为人类的沟通方式是语言,所以我们会把指令称为语言。

机器语言

每一种语言都需要承载体,其实最早的承载体是纸带。现代的语言通常是用线缆和开关来承载的。

汇编语言

如果是直接使用数字的话,会非常难输入,所以说,后面我们出现了汇编语言,汇编语言是使用字母来代替数字,方便输入,同时的话,不同的字母在不同的机器下可以转换成不同的数字,因此也具有了一定的可一致性。

高级语言

最后的话,出现了高级语言,进一步提高了可一致性。高级语言也更贴近自然语言,贴近我们人类的思维。接着就出现了编译器的概念。编译器就会把高级语言先变成汇编语言,然后汇编语言再转变成机器语言,这样的话,我们就会源码非常小,但是出来的产物就会非常大。

典型的高级语言

  • C语言:“中级语言”过程式语言代表
  • c++:面向对象语言代表
  • Javascript:基于原型和头等函数的多范式语言(是世界上使用最广泛的语言)

编程范式

编程范式分为命令式和声明式,命令主要倾向于程序员如何操作和改变命令状态,声明式分为响应式和函数式。

过程式编程

两大特点:自顶向下和结构化编程。结构化编程改善了传统的Go to,改善了电脑的开发时间,避免写出这种面条式的代码。

面向过程呢也存在一些问题,比如数据与算法关联弱,不利于修改和扩充,不利于代码重用。因此后面出现了面向对象编程,把数据封装。

面向对象编程五大原则

  • 单一职责原则
  • 开放封闭原则
  • 里式替换原则
  • 依赖倒置原则
  • 接口分离原则 但是面向对象编程也有缺点。所以我们会更推荐函数式编程。

函数式编程

函数式编程是用纯函数的方式,尽量减少变化的部分。

优势

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

响应式编程语言

响应式编程是一种在异步/离散的函数式编程,包括数据流和操作符两个概念。同样,是没有纯粹的响应式编程语言,我们需要借助工具库的帮忙,这里推荐的是RxJS工具库。

image.png

邻域特定语言

领域特定语言通常要用通用语言来实现,但是通用语言无法用领域特定语言实现。