编程范式 | 青训营笔记

84 阅读3分钟

编程范式 | 青训营笔记

课程内容

JavaScript 作为一种融合了多种编程范式的语言,灵活性非常高。前端开发人员需要根据场景在不同编程范式间自如切换。进一步需要创造领域特定语言抽象业务问题。 本次课程帮助我们了解不同编程范式的起源和适用场景。掌握 JavaScript 在不同的编程范式特别是函数式编程范式下的使用。

  • 编程语言

    • 机器语言
    • 汇编语言
    • 中级语言
    • 高级语言
  • 编程范式

    • 过程式
    • 面向对象
    • 函数式编程
    • 响应式编程
  • 构建领域特定语言

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

编程范式

编程范式指的是一种程序或者程序语言的组织风格、方式。每一种程序范式都包含了代码结构、特征以及处理常见编程问题的方式。

存在各种各样编程范式的原因和存在各种编程语言一样。特定范式适合解决特定问题,所以针对不同项目采取不同的编程范式。

随着时间的推移,不同的范式实践也层出不穷。归功于软件和硬件的发展,新的方式也不断涌现。

我认为是人类的创造力推动了范式的发展。我们热衷于创造新的东西,改善旧的东西,调整生产工具以符合现代需求,提高效率。

所以当现在我们想要写一个程序时,我们有非常多的选择来编写、构建这个程序。

命令式编程

命令式编程由一组详细的指令组成,让计算机以一定的顺序执行。之所以被称作“命令式”是因为开发者以非常具体的方式,准确地规定计算机必须做什么。

命令式编程强调描述程序怎么样一步一步地运行。

过程式编程

过程式编程是命令式编程的派生,在其基础上添加了函数特性(也被称作“过程” procedures 或者“子程序” subroutines)。

在过程式编程中,开发者被鼓励将程序的执行拆分成不同的函数,以此来提高程序的模块化和组织性。

函数式编程

函数式编程将函数的概念往前再推进了一步。

在函数式编程中,函数被认为是一等公民,意味着可以将它们赋值给变量,作为参数传入其他函数,或者由函数返回。

另一个核心观点是纯函数函数指的是输出仅取决于输入的函数。如果输入相同,输出的结果始终保持不变,另外纯函数没有副作用(对函数外部环境的改变)。

基于这些概念,函数式编程鼓励使用函数编程)。同时,函数式编程也坚持将代码模块化、取消副作用,这样可以在代码库内更清晰的分离各个部分代码的责任。提高代码的可维护性。

声明式编程

声明式编程隐藏了复杂性,使编程语言更接近人类的语言和思维,这和命令式编程正好相反。命令式编程给指令告诉计算机 怎么样 执行任务,但是声明式编程告诉计算机需要 什么 样的结果。