全栈手账 订阅 RSS

软件开发常用术语手册

收录软件研发、架构、工程化、运维等领域常见名词,按方向分类整理,便于查阅与对齐沟通。

读了 28 分钟 更新于 8 月 5 日

一、架构与设计模式

名词 英文 含义
模型-视图-控制器 MVC 三层架构:Model(数据)、View(界面)、Controller(逻辑),如 Spring MVC
模型-视图-视图模型 MVVM 前端主流架构,View 与 Model 通过 ViewModel 双向绑定,如 Vue / React
表现层-业务层-持久层 Controller-Service-Repository Java 后端经典分层,对应 Spring Boot 的 Controller → Service → Mapper
面向服务架构 SOA 将应用拆分为多个独立服务,通过接口通信,企业级主流
微服务 Microservices 进一步拆分 SOA,每个服务独立部署、独立数据库、独立技术栈
单体应用 Monolith 所有功能在一个项目中打包部署,简单但扩展性差
前后端分离 Front-Back Separation 前端只负责渲染,后端只提供 API,通过 JSON 通信
无服务器架构 Serverless 开发者只写函数代码,不关心服务器,按调用次数付费(云函数)
事件驱动架构 Event-Driven Architecture 系统通过事件(Event)异步通信,适合高并发、解耦场景
分层架构 Layered Architecture 按职责分层:表示层 → 业务层 → 持久层 → 基础设施层
六边形架构 Hexagonal Architecture / Ports & Adapters 以业务逻辑为核心,通过端口+适配器与外部交互,强调解耦
领域驱动设计 DDD (Domain-Driven Design) 以业务领域为核心建模,分为实体、值对象、聚合、领域服务等

常用设计模式

名词 英文 含义 典型场景
单例模式 Singleton 一个类全局只有一个实例 Spring Bean 默认单例
工厂模式 Factory 用工厂方法创建对象,不直接 new BeanFactory
代理模式 Proxy 为对象提供代理以控制访问 AOP、延迟加载
观察者模式 Observer 一对多依赖,状态变化通知所有观察者 事件监听、消息队列
策略模式 Strategy 定义算法族,可互相替换 支付方式、校验规则
模板方法 Template Method 父类定义骨架,子类实现细节 JdbcTemplate
适配器模式 Adapter 将不兼容的接口转为目标接口 第三方 SDK 封装
建造者模式 Builder 分步构建复杂对象 Lombok @Builder
责任链模式 Chain of Responsibility 多个处理器依次处理请求 过滤器、拦截器

二、代码质量与原则

OOP 五大原则(SOLID)

简称 全称 含义
S Single Responsibility(单一职责) 一个类只做一件事
O Open-Closed(开闭原则) 对扩展开放,对修改关闭
L Liskov Substitution(里氏替换) 子类必须能替换父类
I Interface Segregation(接口隔离) 接口要小,不要胖接口
D Dependency Inversion(依赖倒置) 依赖抽象而非具体实现

通用编码原则

名词 英文 含义
不要重复自己 DRY (Don't Repeat Yourself) 避免重复代码,提取公共逻辑
保持简单 KISS (Keep It Simple, Stupid) 简单方案优先于复杂方案
你可能不需要它 YAGNI (You Ain't Gonna Need It) 不要为未来不确定的需求写代码
最小惊讶原则 Principle of Least Surprise 代码行为应符合直觉,不要出人意料
组合优于继承 Composition Over Inheritance 多用组合、少用继承
约定优于配置 Convention Over Configuration 通过默认约定减少配置量(Spring Boot 核心理念)

代码实践相关

名词 英文 含义
重构 Refactoring 不改变外部行为的前提下优化代码结构
技术债务 Technical Debt 因赶进度留下"凑合用"的代码,后期需花时间偿还
代码异味 Code Smell 代码中暗示潜在问题的"味道",如过长方法、过深嵌套
魔法数字 Magic Number 代码中直接出现的无解释字面量,应定义为常量
硬编码 Hard Coding 本应配置化的值直接写在代码里
耦合 Coupling 模块之间的依赖程度——高耦合是坏味道
内聚 Cohesion 模块内部元素的关联程度——高内聚是好设计
圈复杂度 Cyclomatic Complexity 衡量代码中独立路径数量的指标,越高越难维护
死代码 Dead Code 永远不会被执行的无用代码
脚手架 Scaffolding 项目的骨架代码、初始化结构

三、版本控制

名词 英文 含义
仓库 Repository 存放代码的地方,分本地仓库和远程仓库
提交 Commit 将修改保存到本地仓库的一个快照
分支 Branch 基于某个版本创建的独立开发线
合并 Merge 将一个分支的变更合并到另一个分支
变基 Rebase 将当前分支的提交"移植"到另一个分支的顶端,保持线性历史
拣选提交 Cherry-pick 把某个分支上的特定提交复制到当前分支
暂存 Stash 临时保存未提交的修改,清空工作区
分叉 Fork 复制别人的仓库到自己的账号下,常用于开源协作
拉取请求 Pull Request / PR 请求仓库维护者合并你的变更
合并冲突 Merge Conflict 两个人改了同一行代码,Git 无法自动合并
标签 Tag 给某个提交打标,常用于版本号标记(v1.0.0)
工作树 Working Tree 当前磁盘上的文件内容
暂存区 Staging Area / Index 提交前的"待提交区"
分离头指针 Detached HEAD HEAD 指向某个提交而不是分支,此时提交会丢失
子模块 Submodule 在一个仓库中引用另一个仓库的特定版本

工作流模式

名词 英文 含义
集中式工作流 Centralized Workflow 所有人都在 main 分支开发(适合小团队)
功能分支工作流 Feature Branch Workflow 每个功能开一个分支,合并后删除
Git Flow Git Flow 经典分支模型:main / develop / feature / release / hotfix
GitHub Flow GitHub Flow 简化版:main → feature → PR → merge,持续部署
主干开发 Trunk-Based Development 所有人频繁提交到主干,短生命周期分支

四、测试体系

名词 英文 含义
单元测试 Unit Test 测试单个函数或方法,确保最小单元逻辑正确
集成测试 Integration Test 测试模块之间的交互,如 API 调用、数据库读写
端到端测试 E2E Test (End-to-End) 模拟用户完整操作路径,从前端到数据库全链路
回归测试 Regression Test 修改代码后验证已有功能未受影响
冒烟测试 Smoke Test 核心功能是否可用的快速验证,通过后才进一步测试
压力测试 Stress Test 测试系统在极限负载下的表现
性能测试 Performance Test 测试响应时间、吞吐量、资源占用等
验收测试 UAT (User Acceptance Testing) 用户验证是否满足业务需求
测试驱动开发 TDD (Test-Driven Development) 先写测试,再写代码让测试通过,最后重构
行为驱动开发 BDD (Behavior-Driven Development) 用自然语言描述行为,开发与业务对齐
模拟 Mock 用假的替代品模拟真实对象,隔离外部依赖
打桩 Stub Mock 的简化版,返回固定数据
测试覆盖率 Test Coverage 测试覆盖的代码行数/分支数占总代码的比例
黑盒测试 Black-Box Testing 不看内部实现,只验证输入输出
白盒测试 White-Box Testing 基于内部逻辑设计测试用例
金丝雀发布 Canary Release 先让小部分用户用新版本,验证没问题再全量

五、部署与运维

名词 英文 含义
持续集成 CI (Continuous Integration) 每次代码提交自动构建、测试,尽早发现问题
持续交付 CD (Continuous Delivery / Deployment) 自动化构建→测试→部署到生产环境的流水线
流水线 Pipeline CI/CD 中的自动化流程:代码检查→构建→测试→部署
容器 Container 轻量级虚拟化,打包应用与依赖一起运行
容器引擎 Docker 最流行的容器化平台,Build → Ship → Run
容器编排 Kubernetes / K8s 管理多个容器的部署、伸缩、负载均衡
镜像 Image Docker 中应用的只读模板,由镜像创建容器
编排 Orchestration 自动管理容器的启停、扩缩容、负载均衡
灰度发布 Gray Release 新功能逐步放量给用户,从 1% → 10% → 100%
蓝绿部署 Blue-Green Deployment 维护两套环境,切换流量实现零停机发布
滚动更新 Rolling Update 逐步替换旧版本实例为新版本,保持服务不中断
回滚 Rollback 新版本出问题时恢复到上一版本
配置中心 Configuration Center 集中管理应用配置,支持动态刷新(如 Nacos、Apollo)
注册中心 Registry / Service Discovery 服务启动时注册自己,消费者通过注册中心发现服务
负载均衡 Load Balancing 将请求分发到多个后端实例,避免单点过载
限流 Rate Limiting 控制请求速率,防止系统被突发流量冲垮
熔断 Circuit Breaker 下游服务异常时自动断开,防止级联故障(如 Sentinel)
降级 Degradation 系统压力过大时牺牲非核心功能,保证核心功能可用
链路追踪 Distributed Tracing 追踪请求在多个微服务间的完整调用路径(如 SkyWalking)
监控告警 Monitoring & Alerting 采集系统指标,异常时自动通知(如 Prometheus + Grafana)

六、数据库相关

名词 英文 含义
对象关系映射 ORM (Object-Relational Mapping) 将数据库表映射为编程语言中的对象,如 MyBatis、JPA
数据库事务特性 ACID 原子性 / 一致性 / 隔离性 / 持久性
分布式系统理论 CAP 一致性 / 可用性 / 分区容忍性——三者最多同时满足其二
索引 Index 加速查询的数据结构——B+ 树索引、哈希索引、全文索引
联合索引 Composite Index 多字段组成的索引,遵循最左前缀原则
索引覆盖 Covering Index 索引本身包含查询所需的所有字段,无需回表
慢查询 Slow Query 执行时间超过阈值的 SQL,需优化
N+1 查询 N+1 Query Problem 查询一条记录后循环查询关联记录,造成大量 SQL(ORM 常见问题)
分表 Sharding / Partitioning 将一个大表拆成多个小表,分散存储压力
读写分离 Read-Write Splitting 主库写、从库读,提升读性能
连接池 Connection Pool 复用数据库连接,避免频繁创建/销毁(如 HikariCP、Druid)
脏读 / 不可重复读 / 幻读 Dirty Read / Non-Repeatable Read / Phantom Read 事务隔离级别要解决的三种并发问题
乐观锁 / 悲观锁 Optimistic Lock / Pessimistic Lock 乐观锁用版本号,悲观锁用 SELECT ... FOR UPDATE
外键 Foreign Key 表与表之间的约束引用,InnoDB 支持,但分布式一般不建
迁移 Migration 数据库版本管理工具管理的 DDL/DML 变更(如 Flyway)
行级锁 Row-Level Lock 只锁住被修改的行,InnoDB 默认使用
表级锁 Table-Level Lock 锁住整张表,并发性能差,MyISAM 使用
间隙锁 Gap Lock InnoDB 在可重复读级别下锁住索引之间的间隙,防止幻读

常见 NoSQL 术语

名词 英文 含义
键值存储 Key-Value Store 通过 Key 存取 Value(如 Redis)
文档数据库 Document Store 存 JSON/BSON 文档(如 MongoDB)
宽列存储 Wide-Column Store 列族式存储(如 HBase、Cassandra)
搜索引擎 Search Engine 全文搜索与分析(如 Elasticsearch)
缓存穿透 Cache Penetration 查不存在的数据,绕过缓存打 DB—布隆过滤器解决
缓存击穿 Cache Breakdown 热点 key 失效,高并发打 DB—互斥锁解决
缓存雪崩 Cache Avalanche 大量 key 同时过期,DB 被打崩—过期时间随机化

七、网络安全

名词 英文 含义
跨站脚本攻击 XSS (Cross-Site Scripting) 在页面注入恶意脚本,窃取用户数据
跨站请求伪造 CSRF (Cross-Site Request Forgery) 诱导用户点击链接,以用户身份执行非本意操作
SQL 注入 SQL Injection 在输入中拼接恶意 SQL 语句,获取或篡改数据库数据
超文本传输安全协议 HTTPS HTTP + SSL/TLS 加密传输
开放授权 OAuth 2.0 授权第三方应用访问用户资源的标准协议
JSON Web 令牌 JWT (JSON Web Token) 用于身份认证的令牌格式,包含 Header + Payload + Signature
跨域资源共享 CORS (Cross-Origin Resource Sharing) 浏览器安全策略,控制不同域名之间的资源访问
内容安全策略 CSP (Content Security Policy) 限制页面可加载的资源来源,防御 XSS
数据脱敏 Data Masking 敏感信息用星号等字符替换,如手机号 138****1234
对称加密 / 非对称加密 Symmetric / Asymmetric Encryption 对称:同密钥加解密(AES);非对称:公钥加密私钥解密(RSA)
哈希加盐 Salted Hash 密码存储时加随机字符串再哈希,防止彩虹表破解
身份认证 Authentication 验证"你是谁"(登录、Token 校验)
授权 Authorization 验证"你能做什么"(权限校验、角色判断)
零信任 Zero Trust 默认不信任任何请求,每次访问都要验证
SSL/TLS 证书 SSL/TLS Certificate 用于建立 HTTPS 加密通道的数字证书
单点登录 SSO (Single Sign-On) 一次登录即可访问多个系统

八、网络与协议

名词 英文 含义
超文本传输协议 HTTP (HyperText Transfer Protocol) Web 通信的基础协议,无状态,请求-响应模式
HTTP/2 HTTP/2 支持多路复用、头部压缩,性能优于 HTTP/1.1
HTTP/3 HTTP/3 基于 QUIC(UDP)的新一代 HTTP 协议,延迟更低
WebSocket WebSocket 全双工通信协议,服务端可主动推送消息给客户端
传输控制协议 TCP (Transmission Control Protocol) 面向连接、可靠传输、三次握手四次挥手
用户数据报协议 UDP (User Datagram Protocol) 无连接、不可靠但低延迟,适合音视频、游戏
域名系统 DNS (Domain Name System) 将域名转换为 IP 地址
内容分发网络 CDN (Content Delivery Network) 将静态资源缓存到离用户最近的节点,加速访问
API 网关 API Gateway 统一的 API 入口,负责路由、限流、鉴权、日志(如 Nginx、Kong)
网关 Gateway 网络的入口/出口,API Gateway 是最常见的应用
反向代理 Reverse Proxy 代理服务端,客户端不知道真正后端的地址(如 Nginx)
负载均衡器 Load Balancer 将流量分发到多个后端服务(如 Nginx、HAProxy)
状态码 HTTP Status Code 2xx 成功 / 3xx 重定向 / 4xx 客户端错误 / 5xx 服务端错误
统一资源定位符 URL (Uniform Resource Locator) 网络资源地址 https://domain.com/path?key=value
远程过程调用 RPC (Remote Procedure Call) 像调用本地方法一样调用远程服务(如 Dubbo、gRPC)
远程调用 gRPC Google 的高性能 RPC 框架,基于 Protobuf,适合微服务
表述性状态传递 REST (Representational State Transfer) 一种 API 设计风格,资源导向,HTTP 动词驱动
GraphQL GraphQL 客户端自定义查询字段,避免 REST 的过度获取/不足获取
消息队列 Message Queue (MQ) 异步通信中间件,削峰填谷、解耦服务(如 RabbitMQ、Kafka)
缓冲 / 吞吐 / 延迟 Buffer / Throughput / Latency 缓冲暂存数据;吞吐量是单位时间处理量;延迟是请求到响应的耗时
序列化 / 反序列化 Serialization / Deserialization 对象 ↔ 字节流 的转换(如 JSON、Protobuf、Java Serializable)

九、构建与工程化

名词 英文 含义
构建工具 Build Tool 自动编译、打包、运行测试(Maven / Gradle / Webpack / Vite)
Maven Maven Java 项目构建工具,用 pom.xml 管理依赖
Gradle Gradle 比 Maven 更快的 Java/Kotlin 构建工具,Groovy/Kotlin DSL
Webpack Webpack 前端打包工具,将 JS/CSS/图片等打包为静态资源
Vite Vite 新一代前端构建工具,基于 ES Module,开发时极速热更新
转译器 Transpiler 将高级语法转为兼容版本(如 Babel 将 ES6+ 转为 ES5)
代码检查 Linter 静态分析代码,发现潜在问题(如 ESLint、StyleLint)
代码格式化 Formatter 自动格式化代码风格(如 Prettier、EditorConfig)
模块打包 Bundler 将分散的模块打包为浏览器可直接加载的文件
热更新 HMR (Hot Module Replacement) 开发时修改代码不刷新页面,模块即时替换
树摇 Tree Shaking 打包时移除未使用的导出代码,减小体积
代码分割 Code Splitting 将代码拆为多个 chunk,按需加载,提升首屏性能
Polyfill Polyfill 为旧浏览器补充缺失的 API 实现(如 core-js)
Source Map Source Map 将压缩代码映射回源码,方便调试
语义化版本 SemVer (Semantic Versioning) 版本号规则:主版本.次版本.修订号(如 2.1.3)
依赖 Dependency 项目引用的外部库/框架,分直接依赖和传递依赖
依赖冲突 Dependency Conflict 不同库依赖同一库的不同版本,需统一版本
锁文件 Lock File 锁定依赖的具体版本号(如 package-lock.json、pom.xml.lock)

十、项目管理与流程

名词 英文 含义
敏捷 Agile 迭代式开发、持续交付、拥抱变化的管理理念
Scrum Scrum 最流行的敏捷框架,包含角色(PO/SM/Dev)和仪式
看板 Kanban 可视化任务管理,用"待办→进行中→完成"列追踪进度
迭代 / 冲刺 Iteration / Sprint 一个固定的开发周期,通常 1-2 周
产品待办列表 Product Backlog 所有待开发需求的优先级列表
冲刺待办列表 Sprint Backlog 本冲刺要完成的任务列表
每日站会 Daily Standup 每天 15 分钟同步:昨天做了什么、今天做什么、遇到什么障碍
冲刺评审 Sprint Review 迭代结束时向干系人演示完成的功能
冲刺回顾 Sprint Retrospective 团队复盘:什么做得好、什么需要改进、下一步怎么做
燃尽图 Burndown Chart 显示冲刺中剩余工时的下降趋势图
用户故事 User Story 从用户视角描述需求:作为XXX,我想要XXX,以便XXX
故事点 Story Point 估算用户故事相对复杂度的单位,常用斐波那契数列
史诗 Epic 大型用户故事,需拆解为多个小故事
任务拆解 Task Breakdown 将用户故事拆为可执行的开发任务
阻塞 Blocked 任务因外部依赖无法继续的状态
风险 Risk 可能影响项目进度或质量的不确定因素
里程碑 Milestone 项目中的关键时间节点
甘特图 Gantt Chart 横向条形图,显示任务的时间排期与依赖关系
复盘 Retrospective / Postmortem 项目结束后回顾得失,沉淀经验
事不过三 Three Strikes Rule 同一问题出现三次就需系统化解决,而非继续打补丁

附录:常用缩写速查

缩写 全称 含义
API Application Programming Interface 应用程序接口
SDK Software Development Kit 软件开发工具包
IDE Integrated Development Environment 集成开发环境
CLI Command-Line Interface 命令行界面
DSL Domain-Specific Language 领域特定语言
JSON JavaScript Object Notation 轻量级数据交换格式
XML Extensible Markup Language 可拓展标记语言
YAML YAML Ain't Markup Language 另一种数据序列化格式
REST Representational State Transfer RESTful API 设计风格
JWT JSON Web Token 身份认证令牌
ORM Object-Relational Mapping 对象关系映射
OOP Object-Oriented Programming 面向对象编程
AOP Aspect-Oriented Programming 面向切面编程
IoC Inversion of Control 控制反转(Spring 核心)
DI Dependency Injection 依赖注入
POJO Plain Old Java Object 普通 Java 对象
DTO Data Transfer Object 数据传输对象(如 UserDTO)
VO Value Object / View Object 值对象 / 视图对象
DAO Data Access Object 数据访问对象
DB Database 数据库
SQL Structured Query Language 结构化查询语言
NOSQL Not Only SQL 非关系型数据库
OLTP Online Transaction Processing 在线事务处理(面向增删改查)
OLAP Online Analytical Processing 在线分析处理(面向数据分析)
HTTP HyperText Transfer Protocol 超文本传输协议
HTTPS HTTP Secure 安全版 HTTP
DNS Domain Name System 域名系统
CDN Content Delivery Network 内容分发网络
CI/CD Continuous Integration / Continuous Deployment 持续集成与持续部署
VM Virtual Machine 虚拟机
SaaS Software as a Service 软件即服务
PaaS Platform as a Service 平台即服务
IaaS Infrastructure as a Service 基础设施即服务
FaaS Function as a Service 函数即服务(Serverless)
SLA Service Level Agreement 服务等级协议
SRE Site Reliability Engineering 站点可靠性工程
QPS Queries Per Second 每秒查询数
TPS Transactions Per Second 每秒事务数
RPS Requests Per Second 每秒请求数
RT Response Time 响应时间

总结

软件开发领域的术语数量庞大,不可能一次记住所有。建议按实际工作需求逐步积累:

  • 遇到一个新术语:在这个文件里查找 → 如果没有就补充进去
  • 面试前:快速过一遍大纲,确保基础概念能说清楚
  • 跨团队沟通:带上英文原名,避免中英文歧义(比如"路由"在不同语境下意思完全不同)

这份手册与「产品开发与设计常用名词手册」互补——那边侧重 UI/UX/产品设计,这边侧重研发工程。两篇合在一起覆盖了从产品到开发的完整链路。

前端、后端、部署、客服都是我一个人。写这里的东西都是真踩过的坑,不是抄来的教程。