收的是正文里以“中文(English)“形式给出英文名的术语,按首次出现所在的部分分组,组内按出现先后排列;不认识的词先想它属于哪一部分,再在那一组里找。“一句话”沿用正文的说法,“首次出现”指正文第一次在这个中文术语后面括注英文名的地方,多数就是定义它的小节;在前言或部分导读里先出现的,定义在后面对应的章里。同一个中文词在不同工具里含义不同时,括号里注明是哪一个。
| 中文 |
英文 |
一句话 |
首次出现 |
| 组(Compose) |
profile |
给 compose 服务标上组,命令里启用这个组时它才启动 |
前言 |
| 命名卷 |
named volume |
compose 文件里声明的卷,删容器不删卷,数据库数据存在这里 |
前言 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 工作区(VS Code) |
Workspace |
用 VS Code 打开的那个文件夹,搜索、源代码管理、调试都以它为范围 |
第 1 章 1.2 |
| 命令面板 |
Command Palette |
VS Code 一切操作的入口,菜单里能找到的命令这里都有 |
第 1 章 1.2 |
| 侧边栏 |
Side Bar |
左侧五个视图:资源管理器、搜索、源代码管理、运行和调试、扩展 |
第 1 章 1.2 |
| 集成终端 |
Integrated Terminal |
编辑器底部的终端,默认在工作区根目录打开 |
第 1 章 1.2 |
| 用户设置 |
User Settings |
对这台机器上所有项目生效的设置 |
第 1 章 1.2 |
| 工作区设置 |
Workspace Settings |
只对当前文件夹生效的设置,和用户设置冲突时以它为准 |
第 1 章 1.2 |
| 扩展(VS Code) |
Extension |
语言支持、格式化、Git 增强等功能都靠它提供 |
第 1 章 1.2 |
| 组合键 |
chord |
先按一组键,松开,再按另一组,如 Ctrl+K Ctrl+S |
第 1 章 1.3 |
| 受限模式 |
Restricted Mode |
不信任工作区作者时进入,调试和大部分扩展不能用 |
第 1 章 1.4 |
| 扩展 ID |
Extension ID |
“发布者.名字”格式的扩展编号,命令行、推荐列表和设置只认它 |
第 2 章 2.2 |
| 扩展市场 |
Marketplace |
微软的扩展仓库,VS Code 默认从这里搜索、安装和自动更新 |
第 2 章 2.2 |
| 推荐扩展 |
Recommendations |
项目里列出所需扩展 ID 的清单,同事打开项目时提示一键安装 |
第 2 章 2.2 |
| 工作区信任 |
Workspace Trust |
打开陌生文件夹时问是否信任作者,选“否”进入受限模式 |
第 2 章 2.2 |
| 配置文件(VS Code) |
Profile |
一套独立的扩展、设置、快捷键组合,按项目切换,互不干扰 |
第 2 章 2.2 |
| 语言服务器 |
Language Server |
扩展在后台起的独立进程,补全、悬停提示、转到定义都来自它 |
第 3 章 3.2 |
| 调试适配器 |
Debug Adapter |
VS Code 和真正的调试器之间的翻译,如 Python 走 debugpy |
第 3 章 3.2 |
| 格式化器 |
Formatter |
只管排版的工具,缩进、空格、换行、引号,改完代码意思不变 |
第 3 章 3.2 |
| 测试资源管理器 |
Testing |
左侧烧杯图标,把项目里的测试列成树,可逐个运行和调试 |
第 3 章 3.2 |
| 终端 |
Terminal |
显示文字、接收键盘输入的窗口程序,如 Windows Terminal |
第 4 章 4.2 |
| 管道 |
Pipeline |
用竖线把前一条命令的输出交给后一条 |
第 4 章 4.2 |
| 密钥对 |
Key Pair |
一对文件:私钥留在本机,公钥放到服务器上即可免密码登录 |
第 6 章 6.2 |
| 口令 |
passphrase |
生成密钥时给私钥加的密码,私钥文件被拷走也打不开 |
第 6 章 6.2 |
| 指纹 |
fingerprint |
记在 known_hosts 里的服务器标识,变了 ssh 就拒绝连接 |
第 6 章 6.2 |
| 端口转发 |
Port Forwarding |
借一条 SSH 连接搭隧道,把一端的端口拉到另一端 |
第 6 章 6.2 |
| 令牌 |
token |
代替密码的一串凭据,如推拉 GitHub 用的个人访问令牌 |
第 6 章 6.4 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 仓库 |
Repository |
被 Git 管理的项目文件夹,全部历史存在根目录的 .git 里 |
第 7 章 7.2 |
| 工作区(Git) |
Working Directory |
你编辑文件的地方,改动从这里出发 |
第 7 章 7.2 |
| 暂存区 |
Staging Area |
git add 放进去的改动,挑好这次要提交哪些 |
第 7 章 7.2 |
| 本地仓库 |
Local Repository |
git commit 把暂存区存成的版本所在的地方 |
第 7 章 7.2 |
| 远程仓库 |
Remote |
另一台机器上的同一个仓库,如 GitHub 上那份,默认叫 origin |
第 7 章 7.2 |
| 提交 |
Commit |
一个快照加一条说明,用一串哈希作编号 |
第 7 章 7.2 |
| 哈希 |
hash |
每个提交的编号,命令里用前七位就够 |
第 7 章 7.2 |
| 分支 |
Branch |
指向某个提交的可移动指针,每提交一次往前挪一格 |
第 7 章 7.2 |
| 暂存现场 |
stash |
把没提交的改动先收起来,工作区变干净,之后再放回 |
第 7 章 7.3 |
| 变基 |
rebase |
把你的提交接到远程最新提交后面,历史成一条直线 |
第 7 章 7.3 |
| 标签(Git) |
tag |
给某个提交起的固定名字,常用来标版本 |
第 7 章 7.3 |
| 拉取请求 |
Pull Request,PR |
在 GitHub 上请求把一个分支合并进来,审查后合并 |
第 7 章 7.4 |
| 引用日志 |
Reflog |
本地记录 HEAD 和各分支去过哪些提交,后悔时靠它找回 |
第 8 章 8.2 |
| 强制推送 |
Force Push |
改写过历史的分支普通推送会被拒绝,必须用它覆盖远程 |
第 8 章 8.2 |
| 挑拣 |
cherry-pick |
把另一个分支的提交复制过来,内容相同、哈希不同 |
第 8 章 8.3 |
| 二分查找 |
bisect |
标一个好的、一个坏的提交,Git 对半切换帮你找出出错的那次 |
第 8 章 8.3 |
| 多工作区 |
worktree |
在另一个目录检出某个分支,共用同一个仓库,不用再 clone |
第 8 章 8.3 |
| 子模块 |
submodule |
嵌在仓库里的另一个仓库,克隆时要连它一起下载 |
第 8 章 8.3 |
| 上游 |
upstream |
你 fork 的那个原仓库的习惯叫法 |
第 9 章 9.2 |
| 保护分支 |
Branch protection |
给 main 这类分支加规则,如必须走 PR、CI 必须通过、不许强推 |
第 9 章 9.2 |
| 规则集 |
Rulesets |
保护分支的较新写法,一套规则可以同时管多个分支 |
第 9 章 9.2 |
| 个人访问令牌 |
Personal Access Token,PAT |
HTTPS 地址推拉代码时代替密码用的令牌 |
第 9 章 9.2 |
| 合并请求 |
Merge Request,MR |
GitLab 对拉取请求的叫法 |
第 9 章 9.5 |
| 持续集成 |
Continuous Integration,CI |
每次推送或发 PR,自动在干净机器上跑检查和测试 |
第 10 章 10.2 |
| 工作流 |
Workflow |
一个 YAML 文件就是一个工作流,里面有一个或多个作业 |
第 10 章 10.2 |
| 作业 |
Job |
工作流里的一组步骤,作业之间默认同时开跑 |
第 10 章 10.2 |
| 步骤 |
Step |
作业里从上到下依次执行的一步,失败后面的都不跑 |
第 10 章 10.2 |
| 运行器 |
Runner |
执行作业的机器,每个作业拿到一台全新的 |
第 10 章 10.2 |
| 机密 |
Secrets |
存在仓库设置里的密码、令牌,日志里显示成 *** |
第 10 章 10.2 |
| 变量(CI) |
Variables |
存在仓库设置里的不敏感配置 |
第 10 章 10.2 |
| 矩阵 |
Matrix |
同一个作业按一组值展开成多份,各自独立并行运行 |
第 10 章 10.2 |
| 缓存(CI) |
Cache |
多次运行之间复用的依赖目录,省下每次重新下载的时间 |
第 10 章 10.2 |
| 产物 |
Artifact |
这次运行生成、留给人下载或给后面作业用的文件 |
第 10 章 10.2 |
| 提交钩子 |
Git hook |
Git 在某些时刻自动运行的脚本,失败就不生成提交 |
第 11 章 11.2 |
| 约定式提交 |
Conventional Commits |
提交说明用 feat:、fix: 等固定前缀开头,工具据此生成更新日志 |
第 11 章 11.2 |
| 平面配置 |
Flat Config |
ESLint 9 起默认只读的 eslint.config.* 配置格式 |
第 11 章 11.6 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 镜像 |
Image |
只读的模板,里面是精简的 Linux 文件系统加你的程序 |
第 12 章 12.2 |
| 容器 |
Container |
镜像跑起来的一个实例,有自己的进程、文件和网络 |
第 12 章 12.2 |
| 镜像仓库 |
Registry |
存放镜像的服务器,默认是 Docker Hub |
第 12 章 12.2 |
| 标签(Docker) |
Tag |
镜像名冒号后面表示版本的部分,不写等于 :latest |
第 12 章 12.2 |
| 卷 |
Volume |
由 Docker 管理、用名字引用的存储,删容器不删卷 |
第 12 章 12.2 |
| 绑定挂载 |
Bind mount |
把宿主机的目录直接映射进容器,两边改动实时同步 |
第 12 章 12.2 |
| 网络(Docker) |
Network |
接到同一个自建网络上的容器能用容器名互相访问 |
第 12 章 12.2 |
| 层 |
Layer |
Dockerfile 每条指令生成一层,没变的层重新构建时用缓存 |
第 12 章 12.2 |
| 两阶段构建 |
multi-stage build |
第一阶段装依赖并构建,最终镜像只拿运行要用的文件 |
第 12 章 12.5 |
| 服务(Compose) |
Service |
compose 文件 services: 下的一项,对应一个容器 |
第 13 章 13.2 |
| 项目(Compose) |
Project |
一个 compose 文件起来的所有东西合称一个项目 |
第 13 章 13.2 |
| 清单文件 |
Manifest |
手写的依赖列表,写的是版本范围,要提交进仓库 |
第 14 章 14.2 |
| 锁文件 |
Lockfile |
记下每个包确切版本和校验和的文件,也要提交 |
第 14 章 14.2 |
| 进程环境 |
Process Environment |
每个进程自己的一份环境变量,启动时从父进程复制过来 |
第 15 章 15.2 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 反向代理 |
reverse proxy |
浏览器只连它,它把请求转给后面的应用,再把响应交回 |
第四部分导读 |
| 主进程与工作进程 |
master / worker |
Nginx 主进程读配置、管理工作进程,工作进程处理请求 |
第 16 章 16.2 |
| 配置的层级 |
context |
Nginx 配置文件一层套一层的块,最外层叫 main |
第 16 章 16.2 |
| 虚拟主机(Nginx) |
virtual server |
一台 Nginx 托管多个网站,按端口和域名挑出处理请求的 server |
第 16 章 16.2 |
| 站点块 |
site block |
Caddyfile 里每个“地址 + 大括号”的块 |
第 17 章 17.2 |
| 指令 |
directive |
站点块里的一行配置,如 reverse_proxy、file_server |
第 17 章 17.2 |
| 匹配器 |
matcher |
紧跟在指令后面,只让这类请求走这条指令 |
第 17 章 17.2 |
| 自动 HTTPS |
automatic HTTPS |
Caddy 为公网域名自己申请证书,到期前自己续期 |
第 17 章 17.2 |
| 管理 API |
admin API |
Caddy 运行时开在本机的接口,新配置和停止指令经它下达 |
第 17 章 17.2 |
| 请求 |
request |
客户端发出的文本,含方法、URL、请求头、正文四部分 |
第 18 章 18.2 |
| 请求头 |
header |
请求里一行一个“名字: 值”的附加信息 |
第 18 章 18.2 |
| 正文 |
body |
请求或响应里头部之后的内容,GET 一般没有 |
第 18 章 18.2 |
| 响应 |
response |
服务器回的文本:状态码、响应头、正文 |
第 18 章 18.2 |
| 状态码 |
status code |
响应里的第一部分,表示这次请求的结果 |
第 18 章 18.2 |
| 内容类型 |
Content-Type |
请求头里说明正文是什么格式,后端按它解析正文 |
第 18 章 18.2 |
| 认证头 |
Authorization |
带身份凭据的请求头,大部分 Web API 放令牌 |
第 18 章 18.2 |
| 内网穿透 |
tunneling |
本机主动连到服务商,借它给的公网地址让外面访问本机 |
第 18 章 18.2 |
| 集合(Bruno) |
collection |
Bruno 的一组请求,就是一个目录,每个请求一个文本文件 |
第 18 章 18.4 |
| 开发者工具 |
DevTools |
浏览器自带的调试工具,不用单独装,按 F12 打开 |
第 19 章 19.1 |
| 面板 |
Panel |
开发者工具顶部的一排标签页,如 Elements、Network |
第 19 章 19.2 |
| 命令菜单 |
Command Menu |
开发者工具里输入几个字执行任意命令,同 VS Code 命令面板 |
第 19 章 19.2 |
| 抽屉 |
Drawer |
按 Esc 在当前面板下方再开的区域,默认是 Console |
第 19 章 19.2 |
| 设备模拟 |
Device Mode |
按手机的屏幕尺寸、像素比和触摸事件渲染页面 |
第 19 章 19.2 |
| 请求计时 |
Timing |
把一次请求的耗时拆成几段,哪段长就慢在哪里 |
第 19 章 19.2 |
| 首字节时间 |
TTFB |
请求发完到收到响应第一个字节之间等了多久 |
第 19 章 19.2 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 连接串 |
Connection String |
把连哪台机器、哪个端口、用谁的身份、进哪个库写成一行 |
第 20 章 20.2 |
| 数据库 |
Database |
一个数据库服务里彼此隔离的库 |
第 20 章 20.2 |
| 模式 |
Schema |
库里给表分组的一层,MySQL 里模式和数据库是同一个东西 |
第 20 章 20.2 |
| 事务 |
Transaction |
一组改动要么全部生效、要么全部不生效 |
第 20 章 20.2 |
| 隔离级别 |
Isolation Level |
决定事务能否看到别人中途提交的改动、同一查询读两次是否一致 |
第 20 章 20.2 |
| 读已提交 |
Read Committed |
能看到别的事务中途已提交的改动;PostgreSQL 默认 |
第 20 章 20.2 |
| 可重复读 |
Repeatable Read |
同一事务里同一条查询读两次结果一致;MySQL 默认 |
第 20 章 20.2 |
| 索引 |
Index |
按某一列排好序的目录,查询直接定位,写入要多维护一份 |
第 20 章 20.2 |
| 迁移 |
Migration |
把表结构的每次变化写成带编号的脚本,用工具按顺序执行 |
第 20 章 20.2 |
| 逻辑备份 |
Logical Backup |
导出成 SQL 语句或归档文件,能跨版本、能只恢复一张表 |
第 20 章 20.4 |
| 物理备份 |
Physical Backup |
直接复制数据目录的文件,快,但恢复时要求版本一致 |
第 20 章 20.4 |
| 集群(PostgreSQL) |
Cluster |
一个服务进程管的一整套数据目录,不是多台机器 |
第 21 章 21.2 |
| 角色 |
Role |
PostgreSQL 的用户和用户组,带登录属性的才能登录 |
第 21 章 21.2 |
| 预写日志 |
WAL,Write-Ahead Log |
改动先顺序写进日志再写回数据文件,断电后按它重放 |
第 21 章 21.2 |
| 扩展(PostgreSQL) |
Extension |
装进某个库的附加功能,CREATE EXTENSION 启用 |
第 21 章 21.2 |
| 自动清理 |
autovacuum |
PostgreSQL 平时自动回收空间、更新统计 |
第 21 章 21.3 |
| 实例 |
Instance |
一个 mysqld 服务进程,管一个数据目录 |
第 22 章 22.2 |
| 存储引擎 |
Storage Engine |
决定表的数据怎么存、怎么加锁,MySQL 默认 InnoDB |
第 22 章 22.2 |
| 字符集 |
Character Set |
决定能存哪些字符;MySQL 的 utf8 只有 3 字节,要用 utf8mb4 |
第 22 章 22.2 |
| 排序规则 |
Collation |
决定字符怎么比较和排序 |
第 22 章 22.2 |
| 二进制日志 |
binlog |
按顺序记下每次改动,主从复制和按时间点恢复靠它 |
第 22 章 22.2 |
| 类型亲和性 |
Type Affinity |
SQLite 列声明的类型只是倾向,不是约束 |
第 23 章 23.2 |
| WAL 模式 |
Write-Ahead Logging |
SQLite 新写入先追加到 -wal 文件,读的人照常读 |
第 23 章 23.2 |
| 文档 |
Document |
MongoDB 的一条记录,写法像 JSON,可以嵌套 |
第 24 章 24.2 |
| 集合(MongoDB) |
Collection |
放文档的地方,对应关系库的表 |
第 24 章 24.2 |
| 聚合管道 |
Aggregation Pipeline |
按顺序执行的一组阶段,每段处理上一段输出的文档 |
第 24 章 24.2 |
| 投影 |
Projection |
查询的第二个参数,指定取哪些字段,1 取、0 不取 |
第 24 章 24.3 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 消息队列 |
message queue |
让发、收消息的程序不必同时在线,一方放进去,另一方按自己的速度取 |
第六部分导读 |
| 键值 |
Key-Value |
每条数据是一个键加一个值,按键存取 |
第 25 章 25.2 |
| 过期 |
TTL,Time To Live |
给键设的存活时间,到点 Redis 自动删掉它 |
第 25 章 25.2 |
| 持久化 |
Persistence |
Redis 把内存里的数据落盘,有 RDB 和 AOF 两种方式 |
第 25 章 25.2 |
| 给查询加缓存 |
Cache-Aside |
先查缓存,没有再查数据库并写回;改库后删缓存 |
第 25 章 25.4 |
| 生产者 |
producer |
往队列里发消息的程序 |
第 26 章 26.2 |
| 消费者 |
consumer |
从队列里取消息处理的程序 |
第 26 章 26.2 |
| 队列 |
queue |
存放消息的地方,被一个消费者取走并确认后就删掉(RabbitMQ) |
第 26 章 26.2 |
| 主题 |
topic |
一份只追加的日志,谁来读都从自己记下的位置往后读 |
第 26 章 26.2 |
| 流 |
stream |
Redis 里和 Kafka 主题同一类的只追加日志 |
第 26 章 26.2 |
| 交换机 |
exchange |
RabbitMQ 生产者把消息发给它,由它按路由规则转进队列 |
第 26 章 26.2 |
| 确认 |
ack,acknowledgement |
消费者处理完一条消息后告诉队列“这条好了” |
第 26 章 26.2 |
| 偏移量 |
offset |
消费者组在分区里读到的位置;Kafka 的确认就是提交偏移量 |
第 26 章 26.2 |
| 重投 |
redelivery |
没确认的消息被再次投递 |
第 26 章 26.2 |
| 死信 |
dead letter |
重投到一定次数仍失败的消息,移进死信队列留给人查原因 |
第 26 章 26.2 |
| 投递语义 |
delivery semantics |
至多一次、至少一次、恰好一次,由确认的时机决定 |
第 26 章 26.2 |
| 至多一次 |
at-most-once |
先确认再处理,处理中崩溃这条就丢了 |
第 26 章 26.2 |
| 至少一次 |
at-least-once |
先处理再确认,确认前崩溃这条会再来一次,即重复 |
第 26 章 26.2 |
| 恰好一次 |
exactly-once |
只在 Kafka 内部靠事务做到,要写数据库就仍是至少一次 |
第 26 章 26.2 |
| 幂等 |
idempotent |
同一条消息处理两遍和处理一遍结果相同 |
第 26 章 26.2 |
| 分区 |
partition |
主题分成的几份,各分区并行读,只有分区内保证先来先处理 |
第 26 章 26.2 |
| 键(消息) |
key |
消息带的键,同键总进同一个分区 |
第 26 章 26.2 |
| 消费者组 |
consumer group |
几个消费者共同消费一份消息,每条只交给组里一个成员 |
第 26 章 26.2 |
| 积压 |
lag |
组还没读到的消息条数,判断消费跟不上的第一个数字 |
第 26 章 26.2 |
| 同步副本 |
ISR,in-sync replicas |
生产者 acks=all 时要全部写入才算发送成功的那组副本 |
第 26 章 26.3 |
| 仲裁队列 |
quorum queue |
RabbitMQ 总是持久化、在多个节点间复制的队列 |
第 26 章 26.3 |
| 策略 |
policy |
RabbitMQ 里给已有队列加参数(如死信)的办法 |
第 26 章 26.5 |
| 消息代理 |
message broker |
RabbitMQ 这一类:消息经交换机进队列,消费者确认后删除 |
第 27 章 |
| 路由键 |
routing key |
生产者发给交换机时附上的键,交换机据此转发 |
第 27 章 27.2 |
| 绑定 |
binding |
交换机到队列的一条规则,带一个绑定键 |
第 27 章 27.2 |
| 虚拟主机(RabbitMQ) |
vhost |
RabbitMQ 里隔开的空间,各有交换机、队列和权限 |
第 27 章 27.2 |
| 持久 |
durable |
队列声明为持久才在重启后还在 |
第 27 章 27.2 |
| 经典队列 |
classic queue |
RabbitMQ 默认的队列类型,随书单节点环境用它 |
第 27 章 27.2 |
| 连接 |
connection |
客户端到 RabbitMQ 的连接,里面再开通道 |
第 27 章 27.3 |
| 通道 |
channel |
连接里开的通道,声明、收发都在通道上做 |
第 27 章 27.3 |
| 非持久 |
Transient |
队列的非持久声明,重启后队列就不见了 |
第 27 章 27.6 |
| 副本 |
replica |
分区在几个 broker 上各存的一份,一台挂了由别的接替 |
第 28 章 28.2 |
| 保留策略 |
retention |
消息到期就删,默认留 7 天,与有没有被消费无关 |
第 28 章 28.2 |
| 中文 |
英文 |
一句话 |
首次出现 |
| 文件权限 |
Permission |
分属主、属组、其他人三段,每段读、写、执行三位 |
第 29 章 29.2 |
| 属主 |
owner |
文件所属的用户,权限的第一段管它 |
第 29 章 29.2 |
| 属组 |
group |
文件所属的用户组,权限的第二段管它 |
第 29 章 29.2 |
| 信号 |
Signal |
发给进程的通知,kill 默认发 SIGTERM 请它收尾后退出 |
第 29 章 29.2 |
| 进程号 |
PID |
每个运行中进程的编号 |
第 29 章 29.2 |
| 单元 |
Unit |
systemd 管理的每样东西,用后缀区分,如 .service、.timer |
第 30 章 30.2 |
| 调用栈 |
traceback |
Python 报错时列出的调用链,先看最后一行 |
第 31 章 31.1 |