编程范式 | 青训营笔记

20 阅读2分钟

引言: 今天写了一段JS代码,想起来编程范式的相关规范,感觉代码写得不是太好,所以这篇文章聊聊编程范式。


最常见的有四种编程范式,其实,这四种范式我都接触过,并且都练习过,只是没有意识到他们其实就是范式。

1. 过程化编程 / 命令式编程
通过编程的方法将这些步骤转化成程序指令集(算法),而这些指令按照一定的顺序排列,用来说明如何执行一个任务或解决一个问题。这意味着,程序员必须要知道程序要完成什么,并且告诉计算机如何进行所需的计算工作,包括每个细节操作。简而言之,就是把计算机看成一个善始善终服从命令的装置。

2. 事件驱动编程
在过程式的程序设计中,代码本身就给出了程序执行的顺序,尽管执行顺序可能会受到程序输入数据的影响。在事件驱动的程序设计中,程序中的许多部分可能在完全不可预料的时刻被执行。往往这些程序的执行是由用户与正在执行的程序的互动激发所致。
事件驱动常常用于用户与程序的交互,通过图形用户接口(鼠标、键盘、触摸板)进行交互式的互动。当然,也可以用于异常的处理和响应用户自定义的事件等等。
事件与轮询的区别:轮询的行为是不断的观察和判断,是一种无休止的行为方式。而事件是静静的等待事情发生。
属于事件驱动的编程语言有:VB、C#、Java(Java Swing的GUI)等。它们所涉及的事件绝大多数都是GUI(图形用户界面)事件.

3. 面向对象OOP编程
4. 函数式编程
函数式编程即是在软件开发的工程中避免使用共享状态(Shared State)可变状态(Mutable Data)以及副作用(Side Effects)
函数式编程中整个应用由数据驱动,应用的状态在不同纯函数之间流动。
与偏向命令式编程的面向对象编程而言,函数式编程其更偏向于声明式编程,代码更加简洁明了、更可预测,并且可测试性也更好。
函数式编程本质上也是一种编程范式(Programming Paradigm),其代表了一系列用于构建软件系统的基本定义准则。
核心是函数式编程是只使用纯粹的数学函数编程,函数的结果仅取决于参数,而没有副作用,就像 I/O 或者状态转换这样。程序是通过 组合函数function composition 的方法构建的。
例如,头等函数、高阶函数。