编程范式 | 青训营笔记

137 阅读4分钟

编程语言

机器语言

  • 机器语言由二进制代码表示的,使用机器指令来控制计算机的操作。
  • 机器语言是计算机的最底层语言,与特定的计算机体系结构密切相关。
  • 机器语言每条指令都被编码成一个二进制数或一个字节序列,用于告诉计算机执行特定的操作,例如加载数据、存储数据、执行算术运算等。这些指令通常对应于特定的硬件操作,如处理器寄存器、内存地址和输入/输出设备。

汇编语言

  • 汇编语言是低级语言
  • 汇编语言使用助记符来表示机器语言指令,使程序员能够以相对可读性更高的方式编写程序。
  • 汇编语言直接映射到机器语言的,每条汇编语句对应一条机器指令。
  • 与机器语言相比,汇编语言使用更加人类可读的符号和指令,使程序员能够更容易地理解和编写程序。
编译汇编语言
  • 汇编语言程序需要通过汇编器将其转换为机器语言的指令,以便计算机能够执行。
  • 汇编器是一种特殊的软件工具,它将汇编语言程序翻译成机器语言的二进制代码。
汇编语言的优势
  • 汇编语言的主要优势是它提供了对计算机硬件的底层控制,并具有很高的执行效率。
  • 因此,在某些需要对性能进行精确控制或直接操作底层硬件的应用中,使用汇编语言可以实现更高效的编程。

中级语言

C语言
  • “中级语言”过程式语言的代表
  • 可对位、字节、地址直接操作
  • 代码和数据分离倡导结构化编程
  • 功能齐全:数据类型和控制逻辑多样化
  • 可移植能力强

高级语言

C++
  • “高级语言”面向对象语言代表
  • C语言的超集,在C语言之上实现了面向对象
  • 有继承、权限控制、虚函数、多态

image.png

image.png

Lisp
  • 函数式语言代表
  • 与机器无关
  • 列表:代码即数据
  • 闭包
JavaScript

因为出现的比较晚,所以融合了多种语言的编程范式

  • 基于原型和头等函数的多范式语言
  • 过程式、面向对象、函数式、响应式

编程范式

命令式

面向过程
  • 自顶向下
  • 结构化编程
graph TD
程序 --> 模块 --> 变量 --> 数据结构
    程序 --> 模块 --> 函数 --> 函.数
程序 --> 模块 --> 函数 --> 语句
  • 面向过程的问题
    • 数据与算法关联弱:它们之间的联系较弱。数据被当作全局变量或传递给函数进行处理,而算法则是一系列的过程或函数。这种弱关联可能导致数据在不同的过程之间传递和维护变得困难,增加了代码的复杂性和出错的可能性。
    • 不利于修改和扩充
    • 不利于代码重用
面向对象
  • 面向对象编程的三大特性和一个高级特性
    • 封装、继承、多态
    • 依赖注入(高级特性)
  • 面向对象的五大原则
    • 单一职责原则

      • 做单一的事情,单个类不能负责太多的事情
    • 开放封闭原则

      • 对扩展开放,对修改封闭
    • 里氏替换原则LSP

    • 依赖倒置原则

    • 接口分离原则ISP

为什么推荐使用函数式编程?

  • 函数式编程强调使用纯函数和不可变数据来构建程序
  • 简洁和可读性:函数式编程通常使用短小的、自包含的函数来解决问题,代码更加简洁和易于理解。
  • 可维护性:函数式编程鼓励将程序分解为小型、可复用的函数。这种模块化的设计使得代码更易于维护,可以更容易地测试、调试和修改函数
  • 可扩展性:函数式编程强调将程序分解为小的函数,并鼓励函数之间的解耦。

个人总结

本次视频看起来有些费劲,多看几遍+网上搜索资料才写出了这篇笔记,内容是偏理论的,但如果想在这条道路走下去,这些是必学的内容,视频还得多看几遍才行