一、需求分析阶段核心术语
1.1 用户故事(User Story)
用户故事是敏捷开发中描述功能需求的标准格式,遵循”作为[角色],我想要[功能],以便于[价值]”的三段式结构。例如:”作为电商用户,我想要通过历史订单快速重购商品,以便于节省选购时间”。用户故事的核心价值在于聚焦用户场景而非实现细节,团队可通过INVEST原则(Independent, Negotiable, Valuable, Estimable, Small, Testable)评估其质量。
1.2 验收标准(Acceptance Criteria)
验收标准定义功能完成的边界条件,通常采用Given-When-Then的BDD(行为驱动开发)格式。以用户登录功能为例:
Given 用户已注册且账号有效When 输入正确密码并点击登录Then 系统应跳转至用户主页并显示欢迎信息Given 用户输入错误密码When 连续尝试3次Then 系统应锁定账号并显示错误提示
建议使用Gherkin语法编写可执行的验收测试,确保需求可验证性。
1.3 史诗故事(Epic)与特性(Feature)
史诗故事代表跨迭代的大型需求集合,例如”支付系统重构”可能包含多个用户故事。特性则是可交付的功能模块,如”支持微信支付”特性可能拆解为接口开发、UI集成等子任务。推荐使用Jira等工具建立需求层级关系,通过故事点估算工作量。
二、设计开发阶段关键术语
2.1 设计模式(Design Pattern)
常用设计模式可分为三类:创建型(单例、工厂)、结构型(适配器、装饰器)、行为型(观察者、策略)。以电商系统为例:
- 策略模式实现不同支付方式(支付宝/微信/银联)的动态切换
```java
interface PaymentStrategy {
void pay(double amount);
}
class AlipayStrategy implements PaymentStrategy {
public void pay(double amount) {
System.out.println(“使用支付宝支付:” + amount);
}
}
- 观察者模式实现订单状态变更通知(短信/邮件/推送)## 2.2 架构风格(Architectural Style)现代系统常采用分层架构(Layered)或微服务架构(Microservices)。分层架构的典型四层结构:1. 表现层(REST API/GraphQL)2. 业务逻辑层(Service类)3. 数据访问层(Repository模式)4. 基础设施层(数据库/缓存)微服务架构需重点关注服务发现(Eureka)、API网关(Spring Cloud Gateway)、配置中心(Apollo)等组件。建议通过架构决策记录(ADR)文档化关键设计选择。## 2.3 持续集成/持续部署(CI/CD)典型CI/CD流水线包含以下阶段:1. 代码提交触发构建(Maven/Gradle)2. 单元测试执行(JUnit/TestNG)3. 代码质量检查(SonarQube)4. 镜像构建(Dockerfile)5. 部署到测试环境(Kubernetes)6. 自动化测试(Selenium/Cypress)7. 生产环境灰度发布推荐使用Jenkinsfile定义流水线,示例片段:```groovypipeline {agent anystages {stage('Build') {steps {sh 'mvn clean package'}}stage('Test') {steps {sh 'mvn test'}}}}
三、测试阶段专业术语
3.1 测试金字塔(Test Pyramid)
测试分层策略建议按70%单元测试、20%接口测试、10%UI测试的比例分配。单元测试应覆盖核心业务逻辑,例如:
@Testpublic void testCalculateDiscount() {Order order = new Order(1000);assertEquals(900, order.applyDiscount(0.9));}
接口测试推荐使用Postman或RestAssured,UI测试可采用Playwright实现跨浏览器测试。
3.2 测试双胞胎(Test Double)
常用测试替身包括:
- 存根(Stub):预设固定响应
when(paymentService.charge(any())).thenReturn(true);
- 模拟(Mock):验证交互行为
verify(notificationService).send(eq("order_confirmed"), any());
- 假对象(Fake):简化版实现(如内存数据库)
- 虚拟对象(Dummy):仅满足参数要求
- 间谍(Spy):部分实现真实逻辑
3.3 混沌工程(Chaos Engineering)
通过主动注入故障验证系统韧性,典型实验包括:
- 网络延迟(tc命令模拟)
- 服务宕机(kill -9进程)
- 资源耗尽(限制内存/CPU)
- 数据不一致(修改数据库直接值)
建议使用Chaos Monkey或Gremlin工具,实验前需确保监控告警体系完善。
四、运维阶段重要概念
4.1 基础设施即代码(IaC)
通过代码管理基础设施,主流工具对比:
| 工具 | 声明式/命令式 | 主要用途 |
|——————|————————|————————————|
| Terraform | 声明式 | 多云资源管理 |
| Ansible | 命令式 | 服务器配置管理 |
| Puppet | 声明式 | 主机生命周期管理 |
示例Terraform代码:
resource "aws_instance" "web" {ami = "ami-0c55b159cbfafe1f0"instance_type = "t2.micro"tags = {Name = "WebServer"}}
4.2 可观测性(Observability)
三要素实现方案:
- 日志(Logging):ELK Stack(Elasticsearch+Logstash+Kibana)
- 指标(Metrics):Prometheus+Grafana监控CPU/内存/QPS
- 追踪(Tracing):Jaeger/Zipkin分析调用链
建议设置SLO(服务水平目标),如”99%请求响应时间<500ms”,通过误差预算(Error Budget)驱动可靠性改进。
4.3 弹性伸缩(Auto Scaling)
基于CPU利用率(>70%)或队列积压(>100)触发扩容,冷却时间建议设置为5分钟。Kubernetes的Horizontal Pod Autoscaler配置示例:
apiVersion: autoscaling/v2kind: HorizontalPodAutoscalermetadata:name: web-hpaspec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: webminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 70
五、进阶技术术语
5.1 领域驱动设计(DDD)
四层架构实现:
- 用户界面层(UI/API)
- 应用层(协调领域对象)
- 领域层(核心业务规则)
- 基础设施层(持久化/消息)
示例聚合根(Aggregate Root)设计:
public class Order {private OrderId id;private List<OrderItem> items;private Money total;public void addItem(Product product, int quantity) {// 业务逻辑验证if (quantity <= 0) throw new IllegalArgumentException();items.add(new OrderItem(product, quantity));recalculateTotal();}// 其他领域方法...}
5.2 事件驱动架构(EDA)
典型模式包括:
- 事件通知(Event Notification)
- 事件携带状态(Event-Carried State Transfer)
- 事件溯源(Event Sourcing)
Kafka消费者组配置示例:
group.id=order-processorbootstrap.servers=kafka:9092auto.offset.reset=earliest
5.3 服务网格(Service Mesh)
Istio核心组件功能:
- Envoy代理:实现服务间通信
- Pilot:配置管理
- Citadel:证书管理
- Galley:配置验证
流量管理示例:
apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:name: reviewsspec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v1weight: 90- destination:host: reviewssubset: v2weight: 10
六、实践建议
- 建立术语词典:维护团队共享的术语表,避免理解歧义
- 场景化学习:将术语与实际开发场景结合,如用用户故事驱动设计模式学习
- 工具链整合:选择能覆盖全流程的工具组合(如Jira+Confluence+Bitbucket)
- 持续更新:关注IEEE Software等期刊获取术语标准更新
- 跨团队校准:定期与产品、测试团队对齐术语理解
掌握这些核心术语不仅能提升技术沟通效率,更是成为合格软件工程师的必要基础。建议通过代码审查、技术分享会等方式持续深化理解,最终形成条件反射式的专业表达。