计算机术语速查手册
约 3921 字大约 13 分钟
2022-10-23
工作中时常会遇到产品或其他同学询问一些计算机术语,例如上次有个开发跟我对接某接口时,说给我传输了图片的 「base64编码」串,我需要先解码后使用...
我当然可以很熟练地在封装好的代码中直接输入Base64.getDecoder().decode(encodedString) 顺利交差,但是话说回来,base64到底是个啥玩意?如果遇到一个产品同学过来问我,我该如何用他能够理解的语言描述这个术语的含义呢?于是就想到,不妨编一个计算机术语速查手册,把我遇到的术语都记录下来吧。
提示:本手册的初衷是面向非专业人员介绍专业术语,所以会尽量描述得通俗,可能存在不严谨的地方,请谨慎参考。
索引
计算机基础
句柄(handle)
其实就是英文「handle」的翻译,这个单词是「把手」的意思。本质上就是一个整数,用来表示某一个对象。“要控制哪个对象,就用哪一个把手”。在Windows编程中用得多,Unix编程中也称作文件描述符。
文件描述符(file descriptor)
跟句柄一样也是一个整数,概念上差不多。文件描述符其实就是用一个整数来表示一个文件。可以通过这个整数找到这个文件。
缺省(default)
等同于默认。
进程(Process)
可以简单理解为正在运行的程序,由操作系统控制。
线程(Thread)
一个进程内部可能有多个控制流(比如一个Web服务器可以同时接收处理两个用户的请求),通常这样一个控制流就是一个线程。线程是操作系统调度的最小单位。
并发(Concurrence)
宏观上同时执行,但微观上多个事件在时间间隔内(交替)发生。
参考 操作系统漫游
并行(Parallel)
真正的同时执行。
base64编码
将二进制数据转成对应的文本数据的方法。在处理文本数据的场景中,用于表示、传输、存储一些二进制数据。广泛用于Web开发,例如将图片转成base64字符串,这样可以少发起一次http请求。
什么是文本数据,什么是二进制数据,请参考 计算机系统漫游
base64 用 6个 bit 来表示一个字符,总共有 2^6 = 64 种表示, 所以 base64 编码会有64个基础字符。
编码规则:3个字节为一组, 转化为4个字符表示
Hex编码
同样也是将二进制数据转成对应的文本数据的方法。但常用于安全领域(加解密)。
Hex 用 4个 bit 表示一个字符,即16进制表示。
编码规则:1个字节为一组, 转为2个字符表示
Web开发
base64url
将base64编码后的字符串放在url中进行传输,因为url中不能带有特殊字符,因此去除尾部的=,把 + 替换成 -、把 / 替换成 _。
SPA(Single-page Application)
单页面应用。
SEO(Search Engine Optimization)
搜索引擎优化。利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。一般前后端分离的动态网站,就不利于SEO。
SSO(Single Sign On)
单点登录。在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。而无需重复登录。
SOA(Service-oriented architecture)
面向服务的架构。
JWT(JSON Web Token)
本质是加密的 JSON 串,主要用来解决跨域用户认证问题。可参考 使用 JWT 进行认证
编程
指针(point)
一种指向其他数据结构的数据结构。本质是表示内存地址的整数。可参考 C/C++语言中的指针
协程(coroutine)
简单地理解,就是应用级线程。可以由应用程序自己控制和调度的执行流,但本质上脱离不了操作系统的线程。
CAS(compare-and-swap)
一种非阻塞并发算法。参考 Java并发编程之并发工具
闭包(closure)
在函数中定义另一函数,内部函数可以引用外部函数的参数和局部变量。当外部函数返回内部函数时,相关的参数和变量都保存在返回的内部函数中。这种程序结构,称为闭包。
异步编程
Promise 和 Future
不同的编程语言中,Promise 和 Future 的概念可能有差异。总的来说,Promise 正如这个单词的英文本意「承诺」,可以理解为“承诺将来会执行”的对象,针对的是写入。而 Future 指一个只读的值的容器,这个值可能立即可用,也可能在未来某个时间可用,针对的是读取。每个 Promise 关联一个 Future,对 Promise 的写入会令 Future 的值可用。
(以上解释参考了廖雪峰的javascript教程 和 Fu Zhe's Blog 的 Future 与 Promise,推荐阅读)
callback
回调。即被调用方执行结束后,通过调用某个方法的方式,将结果告诉原调用方。
async/await
部分编程语言中的语法糖。async 表明可异步执行,await 会等待 Future 结束,返回 Future 的值,将异步转成同步。
好处是语法上把异步编程的 callback 和 Promise,用接近于同步编程的习惯编写。
Monad
Monad 的概念最初来源于范畴论,在编程界中多见于函数式编程。可以理解为是一种设计模式,用于解决强调无副作用的函数式编程中,处理带有“上下文/效应”的计算(如异步、空值、异常、状态等),它包装了一个值以及这个值的“上下文”,用 flatMap 处理上下文的传递、组合和“拍平”,它不消除副作用,而是将副作用隔离、声明出来,让纯函数的部分和带效应的部分清晰地分离开。(该解释由 deepseek 生成)
我看了不少文章,发现很难对Monad下一个精确的定义,建议参考下面文章并花上几天时间慢慢意会:
- 理解 Monad,一份 monad 的解惑指南
- 什么是 Monad (Functional Programming)?
- 详解函数式编程之 Monad
- 什么是 Monad (Functional Programming)?
如果看完还是搞不懂,建议直接问 Deepseek 和 Gemini 3 ,再不懂建议跳过吧,人生苦短。
信息安全
DOS攻击(Denial of Service)
拒绝服务攻击。就是向服务器发送看似合法实则虚假的请求,耗尽服务器的资源,导致服务器无法为正常请求服务。
DDOS攻击(Distributed Denial of Service)
分布式拒绝服务攻击。DOS攻击的升级版。攻击来自于分布在全球的成千上万台被控制的计算机(或终端设备)。
肉鸡
指被黑客远程控制的机器,黑客可以随意操纵它并利用它做任何事情。通常被用作DDOS攻击。
对称/非对称加密
对称加密(symmetric key cryptography)指的是加解密都用同一个密钥的方式。
非对称加密(asymmetric key cryptography)有公钥和私钥之分,加密和解密不是同一个密钥。
计算机网络
WAN
广域网。
LAN
局域网。
VLAN
虚拟局域网。可以理解为在软件层面抽象出来的局域网,这样,同一个子网下面可以有多组 VLAN,就像有多个局域网一样。
MESH
组网。例如我们说用多个路由器组MESH,解决无线网络覆盖死角问题。跟桥接、无线中继不是一回事。
CDN(Content delivery network,内容分发网络)
由遍布全球的服务器组成的网络。同一份资源存放在不同地域的服务器中,中国的用户从中国的服务器就近取,美国的用户从美国的服务器就近取。这样就保证了资源的加载速度。
软件工程
IoC(Inversion of Control)
控制反转,一种依赖倒置原则的编程设计思想。依赖注入(Dependency Inject,DI) 是Ioc思想的一种具体做法。DI把底层类作为参数传给上层,实现上层对下层的控制。
OOP(Object Oriented Program)
面向对象编程。
AOP(Aspect Oriented Program)
面向切面编程。
DDD(Domain-driven Design)
领域驱动设计。
TDD(Test-driven Design)
测试驱动设计。
数据库领域
OLTP(Online Transaction Processing)
在线事务处理,主要指对数据库中的数据进行增删改查,实时性高。
OLAP(Online Analytical processing)
在线分析处理,指通过分析数据库中的数据来得出一些结论性的东西,如报表。
计算机硬件
HDD(Hard Disk Drive)
机械硬盘
SSD(Solid State Drive)
固态硬盘
RAID(Redundant Array of Independent Disks)
用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性
- RAID0:N块硬盘,将数据分成N份,并发读写,很快但不可靠
- RAID1:2块硬盘,数据分别写一次,相当于备份
- RAID5:N块磁盘(N>=3),将数据分成N份,并发写,同时还将数据的校验码信息也写入到这N块磁盘中(一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据)
- RAID6:在RAID5的基础上,引入双重校验,数据的冗余性高,读好写差,用得少
- RAID10:RAID1与RAID0的合体,保障数据的同时读写速度也快,冗余50%
物联网
IoT(Internet of things)
物联网。物理设备嵌入传感器、软件和其他技术后,可以通过互联网与其他设备建立连接并交换数据,这种联网系统就是物联网。区别于互联网的只限制计算机设备,物联网可以是任何物理设备,如空调、冰箱、体重秤等。
人工智能
机器学习(Machine Learning)
一种人工智能技术,使计算机能够通过数据和经验自动改进性能,而无需显式编程。
深度学习(Deep Learning)
基于多层神经网络的机器学习方法,擅长处理复杂数据(如图像、语音),应用于自动驾驶、医疗诊断等场景。
NLP(Natural language processing)
自然语言处理,一种机器学习技术,使计算机能够解读、处理和理解人类语言。
GPT(Generative Pre-trained Transformer)
一种深度学习预训练语言模型。基于大量语料数据上训练,生成类似于人类自然语言的文本。其应用如聊天机器人 ChatGPT。
Transformer 架构来自著名的论文《Attention Is All Your Need》
LLM(Large Language model)
大语言模型,一种由大量的参数(十亿或更多)的神经网络组成的语言模型,使用无/半监督学习对大量样本进行训练。GPT是大语言模型的一种。
prompt
提示词,即你向AI提问的问题,你输入的内容。
RAG(Retrieval-Augmented Generation)
检索增强生成,一种AI优化技术。给大语言模型提供额外的资料(知识库),以便AI更精准地回答,减少胡编乱造。
例如通过RAG技术,让AI学习公司内部知识库,这样就不用在每次对话中都把公司资料发一遍。
AIGC(Artificial Intelligence Generated Content)
使用人工智能根据用户输入的关键字或要求生成内容来辅助或替代手动内容生成。
AGI(Artificial General Intelligence)
人工通用智能。具备与人类相当或超越人类的广泛认知能力的人工智能。与当前主流的专用人工智能(如语音助手、图像识别系统)不同,AGI能够像人类一样灵活学习、推理、适应新任务,并在不同领域自主解决问题。
目前(2025年)所有AI系统(包括ChatGPT等大模型)均未达到AGI水平。
MCP(Model Context Protocol)
模型上下文协议。旨在解决大型语言模型(LLM)与外部数据源、工具和系统集成时所面临的碎片化和非标准化问题,类似于为 AI 应用提供了通用的“USB-C 接口”或“万能插头”。
简单来说,MCP 帮助 AI 应用程序构建了一个标准化的、可扩展的、功能更强大的生态系统。
Scaling Law(缩放定律)
机器学习(尤其是深度学习)中观察到的一种经验规律。描述了模型性能(如准确率、生成质量等)与模型规模(参数量)、训练数据量和计算资源(如算力)之间的数学关系。简单来说,它回答了一个关键问题:当模型、数据和算力按比例增大时,性能会如何变化?总体上,性能会随着这些参数的增加而稳定、可预测地提升,甚至效率更高,但边际收益递减。
互联网行业
UGC(User Generated Content)
用户生成内容。一般用户将自己原创的内容通过互联网平台进行展示或者提供给其他用户。
PGC(Professional Generated Content)
专业生产内容。跟UGC的区别是,PGC是由专业用户创造内容。
MCN(Multi-Channel Network)
为自媒体提供内容策划、宣传推广、粉丝管理、签约代理等服务的机构。
ROI(Return on Investment)
投资回报率。衡量一项投资的盈利能力或效率。简单来说,它告诉你投入的钱赚回了多少回报。
