
工作中经常会遇到各种缩写,有些还好,见名知意,有些第一次看完全摸不着头脑。这篇文章把我遇到过的缩写整理在一起,持续更新。
TDD — Test-Driven Development
测试驱动开发。
核心思路是:先写测试,再写代码。具体流程是先写一个会失败的测试,然后写让这个测试通过的最少代码,再重构。
听起来有点反直觉,但实际操作下来会发现,先想清楚"这段代码该有什么行为"再动手,比写完代码再补测试要省心很多。
BDD — Behavior-Driven Development
行为驱动开发。
可以理解为 TDD 的延伸。TDD 关注的是代码层面的测试,BDD 更进一步,用接近自然语言的方式描述测试场景,让产品、测试、开发都能看懂。
常见的格式是 Given / When / Then:给定某个初始状态,当发生某件事,然后预期是什么结果。
DDD — Domain-Driven Design
领域驱动设计。
把业务逻辑(也就是"领域")放在软件设计的核心。代码的结构、命名、分层,尽量贴近业务概念,而不是让业务逻辑散落在各处。
这个概念在中大型项目里提得比较多,小项目用处不大。理解它最快的方式是看实际代码,光看概念很容易绕进去。
TC — Test Case
测试用例。
描述一个具体的测试场景:输入什么、操作步骤是什么、预期结果是什么。测试同学写得多,开发也会接触到。
PRD — Product Requirements Document
产品需求文档。
产品经理写的,描述一个功能要做什么、边界是什么、交互是怎样的。开发在正式开始写代码之前,一般都要先对着 PRD 过一遍,确认需求没有理解偏差。
UI — User Interface
用户界面。
用户直接看到、直接操作的那一层。按钮、输入框、弹窗、页面布局,都属于 UI 的范畴。
UX — User Experience
用户体验。
比 UI 的范围更大。不只是界面长什么样,还包括整个使用流程是否顺畅、操作是否符合直觉、用户的情绪感受等。
一个 UI 好看的产品,UX 不一定好;UX 好的产品,UI 也不一定精致。两者相关但不等同。
API — Application Programming Interface
应用程序接口。
两个系统之间通信的约定:你按这个格式发请求,我按这个格式返回数据。前后端之间、不同服务之间,都靠 API 打交道。
SDK — Software Development Kit
软件开发工具包。
厂商或平台提供的一套工具,帮你更方便地接入他们的服务。比如接入微信支付、调用 AI 模型,通常都有对应的 SDK,不用自己从头写网络请求。
CI/CD — Continuous Integration / Continuous Delivery
持续集成 / 持续交付。
CI 是每次提交代码都自动跑一遍测试,确保新代码没有破坏已有功能。CD 是在 CI 通过之后,自动把代码部署到测试或生产环境。
配好了之后提交代码就能自动走完整个流程,不用手动跑测试、手动发布。
CRUD — Create, Read, Update, Delete
增删改查。
数据操作的四个基本动作。做业务系统,很多功能本质上就是 CRUD,套一个业务外壳。
MVP — Minimum Viable Product
最小可行产品。
以最小的功能集合验证一个想法是否可行。不是做一个"完整"产品的简化版,而是只做能验证核心假设的那部分。
POC — Proof of Concept
概念验证。
在正式开发之前,先做一个小的原型,证明这个方案技术上可行。不追求代码质量,只为了验证思路能不能跑通。
PR / MR — Pull Request / Merge Request
拉取请求 / 合并请求。
写完代码之后,发起一个请求,让同事 Review 你的改动,没问题了再合入主分支。GitHub 叫 PR,GitLab 叫 MR,是一回事。
LGTM — Looks Good To Me
我觉得没问题。
Code Review 时常见的回复,表示审阅通过。有时候也会看到 LGTM + 一些小建议,具体改不改看情况。
QA — Quality Assurance
质量保证,一般指测试。
负责测试产品质量的岗位或环节。开发完之后,通常要经过 QA 测试才能上线。
OKR — Objectives and Key Results
目标与关键结果。
公司或团队的目标管理方法。O 是定性的方向(想去哪),KR 是衡量是否达到的量化指标(怎么算到了)。很多互联网公司按季度设 OKR。
KPI — Key Performance Indicator
关键绩效指标。
衡量工作成果的量化指标。和 OKR 经常被放在一起比较:KPI 通常是和绩效挂钩的硬指标,OKR 更侧重对齐方向、鼓励挑战。
SaaS / PaaS / IaaS
云服务的三种模式。
- SaaS(Software as a Service):直接用软件,不用管底层,比如飞书、Notion
- PaaS(Platform as a Service):提供开发平台和运行环境,自己部署应用
- IaaS(Infrastructure as a Service):提供基础设施(服务器、网络、存储),自己管上面所有东西
越往上封装越高,越往下控制越多。
LLM — Large Language Model
大语言模型。
GPT、Claude、Gemini 这类模型的统称。用海量文本训练出来,能理解和生成自然语言。最近两年这个词出现的频率越来越高了。
REST — Representational State Transfer
一种 API 设计风格,不是协议。
用 HTTP 方法表示操作:GET 查、POST 创建、PUT/PATCH 改、DELETE 删,URL 表示资源。设计 RESTful API 时争得最多的问题通常是:这个接口到底该用 POST 还是 PUT。
MVC — Model-View-Controller
模型-视图-控制器,一种代码分层方式。
把代码分成三层:Model 负责数据,View 负责展示,Controller 负责逻辑和协调。后端框架里用得很多,Rails、Spring MVC、Laravel 都是这个模式。
ORM — Object-Relational Mapping
对象关系映射。
用对象的方式操作数据库,不用手写 SQL。User.findById(1) 背后自动生成 SELECT * FROM users WHERE id = 1。TypeORM、Hibernate、SQLAlchemy 都是 ORM。省去了拼 SQL 的麻烦,但复杂查询还是得自己写。
MQ — Message Queue
消息队列。
生产者把消息发进队列,消费者从队列里取,两端解耦,互不等待。削峰填谷、异步处理、系统解耦,这几个场景用得最多。Kafka、RabbitMQ、RocketMQ 都是消息队列。
JWT — JSON Web Token
一种无状态的身份验证令牌。
登录成功后,服务端生成一个 Token 返回给客户端,后续请求带着这个 Token,服务端验签就知道你是谁,不需要存 Session。Header.Payload.Signature 三段用 . 拼起来,可以直接 Base64 解码看内容,但签名不能伪造。
SSO — Single Sign-On
单点登录。
一套账号,多个系统都能用。在一个系统登录之后,切换到另一个系统不需要再登录。公司内部系统通常都接 SSO。
RBAC — Role-Based Access Control
基于角色的访问控制。
给用户分配角色,角色决定有哪些权限。管理员、编辑、只读这种分法就是典型的 RBAC 思路,不用给每个用户单独配权限。
K8s — Kubernetes
容器编排系统。
管理大量容器的部署、扩缩容、故障恢复。K8s 是 Kubernetes 的缩写,K 和 s 之间有 8 个字母。用了 Docker 之后,容器多了就需要 K8s 来统一管理。
SPA — Single Page Application
单页应用。
整个应用只有一个 HTML 页面,页面切换靠 JavaScript 动态渲染,不会重新请求 HTML。React、Vue 做出来的大多数应用都是 SPA。首屏加载慢和 SEO 不友好是两个常见痛点。
DAU / MAU — Daily Active Users / Monthly Active Users
日活 / 月活。
衡量产品活跃程度的核心指标。DAU 是每日活跃用户数,MAU 是每月活跃用户数。DAU/MAU 的比值能反映用户粘性,比值越高说明用户打开的频率越高。
ROI — Return on Investment
投资回报率。
投入了多少,收到多少回报。不只用在财务上,做需求排期、技术选型时也会用到这个逻辑:这件事投入多少成本,能带来多少收益。
NLP — Natural Language Processing
自然语言处理。
让计算机理解和生成人类语言的技术方向。翻译、情感分析、文本分类、对话系统都是 NLP 的应用。LLM 的出现让 NLP 能做的事大幅扩展了。
RAG — Retrieval-Augmented Generation
检索增强生成。
生成答案之前,先从知识库里检索相关内容,再让模型结合检索结果来回答。企业做内部知识库问答,基本都是这个架构。解决 LLM 知识截止日期和幻觉问题的常用方案。
OOM — Out of Memory
内存溢出,进程被系统强制杀死。
Java 里是 OutOfMemoryError,K8s 里容器超出内存限制也会被 OOM Kill。看日志发现 OOM,先查是哪里用了这么多内存,直接调大限制只是推迟问题。
P0 / P1 / P2
Bug 或任务的优先级分级。
P0 是最高优先级,通常意味着线上故障或阻塞发布,要立刻处理。P1 是高优,P2 是一般。具体怎么定义因公司而异,但看到 P0 基本都知道要放下手头的事先处理这个。
TL;DR — Too Long; Didn’t Read
太长了没看,这里是摘要。
在一段长内容的前面或后面加 TL;DR,然后写一两句总结,给没时间读全文的人。技术文档、邮件、Slack 消息里都会见到。