TDD,SDD,BDD,DDD
软件开发方法论概览:TDD、SDD、DDD、BDD
本文介绍四种在现代软件工程中非常重要的开发方法论:TDD、SDD、DDD、BDD。它们分别从测试、设计、领域建模和行为驱动等不同角度提升软件质量与开发效率。
1. TDD(Test-Driven Development,测试驱动开发)
核心思想
先写测试,再写实现代码,通过测试来驱动开发过程。
基本流程(Red-Green-Refactor)
Red(红):编写一个失败的测试
Green(绿):编写最少代码让测试通过
Refactor(重构):优化代码结构,同时保持测试通过
优点
提高代码质量和可维护性
降低 bug 数量
促进模块化设计
缺点
初期开发速度较慢
对开发者测试能力要求较高
2. SDD(Specification-Driven Development,规格驱动开发)
核心思想
通过明确的规格说明(Specification)来指导开发,实现“先定义,再实现”。
关键特点
规格通常是形式化或半形式化的文档
可以作为开发与测试的统一依据
强调“需求即文档即测试”
常见形式
接口规范(API Spec,如 OpenAPI)
数据契约(Contract)
类型系统约束(Type-driven)
优点
减少歧义,提高沟通效率
有助于自动化测试与验证
支持前后端并行开发
缺点
编写和维护规格成本较高
过度形式化可能降低灵活性
3. DDD(Domain-Driven Design,领域驱动设计)
核心思想
以业务领域为核心,通过建模真实世界的业务逻辑来驱动软件设计。
核心概念
领域(Domain):业务问题空间
实体(Entity):有唯一标识的对象
值对象(Value Object):无标识,仅由属性定义
聚合(Aggregate):一组相关对象的集合
领域服务(Domain Service):不适合归属到实体的业务逻辑
限界上下文(Bounded Context):模型适用的边界
优点
更贴近业务本质
提高复杂系统的可维护性
有助于团队沟通(统一语言)
缺点
学习曲线较陡
对业务理解要求高
小项目可能过度设计
4. BDD(Behavior-Driven Development,行为驱动开发)
核心思想
通过描述系统行为(Behavior)来驱动开发,强调业务可读性。
表达方式(Gherkin 语法)
1 |
|
Given 用户在登录页面
1 |
When 用户输入正确的用户名和密码
1 |
Then 用户应该进入首页
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yvmou's Blog!
评论

