SDD、TDD、Vibe Coding 概念 三大核心模式
- SDD
SDD是AI编程时代的顶层开发范式,并非单纯的数据层定义,也是一套完整的、前置性的开发约束体系,核心宗旨为规格先行、代码后置,从需求源头统一开发标准,杜绝AI编码跑偏、需求失真、代码逻辑混乱等问题。
SDD并非狭义的数据结构定义,而是涵盖需求规约、数据模型、接口契约、校验规则、验收标准、任务拆解的全维度规范,相当于整个开发流程的“总纲领”,也是编写AI提示词的核心依据、约束TDD与Vibe Coding的核心框架。在AI编码场景下,SDD相当于给AI设定编码护栏,从根源规避代码发散、测试无依据、实现偏离需求等问题,也是生成高质量AI提示词的基础。
- TDD
TDD是经典的工程化开发手段,诞生于传统软件开发阶段,核心逻辑为测试先行、编码在后,属于SDD规格的落地执行环节,也是AI代码校验的核心准则。
开发前先基于SDD制定的规格、约束、验收标准,编写可执行的测试用例,确立功能合格标尺;在AI编码场景下,TDD测试用例既可由人工编写,也可基于SDD规格生成提示词交由AI生成,后续所有AI生成的代码,都以“通过测试用例”为唯一合格标准,全程保证代码严格贴合SDD规格,杜绝无效代码、逻辑漏洞,保障AI生成代码的质量与功能一致性。
- Vibe Coding
Vibe Coding是AI时代兴起的轻量化编码方式,核心特点是AI提示词驱动、快速落地、极简实现、不做冗余设计,属于代码落地的执行手段,而非重构优化环节。
SDD、TDD、Vibe Coding 三者核心关联
自上而下、层层约束、闭环联动的完整开发链路,更是AI提示词生成代码的全流程准则,层级与协作关系清晰明确:
- 层级关系:顶层约束→执行标准→AI落地实现
-
SDD为顶层框架:定全局规则、定验收标准、定数据与接口契约,划定整个开发的边界与方向,是编写AI提示词的核心依据,也是后续所有环节的基础;
-
TDD为执行标尺:将SDD的规格转化为可验证的测试用例,把抽象标准变成具象的判断依据,约束AI生成代码的方向,作为AI代码校验的唯一标准;
-
Vibe Coding为AI落地手段:依托SDD规约编写提示词,在TDD测试约束下,由AI快速生成核心代码,是流程里的编码执行环节。
- 联动闭环逻辑
SDD输出完整规格与约束 → 基于SDD规格编写提示词,AI生成TDD测试用例(确立合格标准) → 依据SDD+TDD标准优化提示词,AI完成Vibe Coding核心代码生成 → 运行TDD用例校验AI代码 → 符合SDD规格则完成核心实现 → 后续代码重构优化。
实战代码对应环节注解
1. SDD规格落地片段(数据规约+规则定义)
基于业务需求,定义用户数据输入输出结构、全局校验规则,要求使用Python dataclass实现,严谨约束数据类型与业务阈值。
from dataclasses import dataclass
from typing import Optional, Dict, Any
# SDD:定义输入数据结构(数据契约),AI依据SDD提示词生成
@dataclass
class UserInputData:
"""用户输入数据模型"""
username: str
age: int
email: str
phone: Optional[str] = None
# SDD:定义输出数据结构(结果契约),AI依据SDD提示词生成
@dataclass
class UserProcessResult:
"""用户数据处理结果模型"""
is_valid: bool # 数据是否合法
msg: str # 处理提示信息
data: Optional[Dict[str, Any]] = None # 处理后数据
# SDD:定义全局业务校验规则(核心规约),AI依据SDD提示词生成
class UserDataRule:
MIN_AGE = 18
MAX_AGE = 60
ALLOW_EMAIL_SUFFIX = ["@qq.com", "@163.com", "@gmail.com"]
2. TDD测试用例
基于上述SDD数据规则,使用pytest编写测试用例,覆盖合法数据、年龄非法、邮箱非法三类场景,完成业务规则的校验测试。
import pytest
from sdd_data import UserInputData, UserDataRule
# TDD:测试合法数据(符合SDD规则),AI依据提示词生成
def test_user_data_valid():
user_data = UserInputData(
username="test_user",
age=25,
email="test@163.com",
phone="13800138000"
)
assert UserDataRule.MIN_AGE <= user_data.age <= UserDataRule.MAX_AGE
assert any(user_data.email.endswith(suffix) for suffix in UserDataRule.ALLOW_EMAIL_SUFFIX)
assert len(user_data.username) >= 3
# TDD:测试年龄非法数据(违背SDD规则),AI依据提示词生成
def test_user_age_invalid():
user_data = UserInputData(
username="test_user",
age=17,
email="test@163.com"
)
assert user_data.age < UserDataRule.MIN_AGE
# TDD:测试邮箱非法数据(违背SDD规则),AI依据提示词生成
def test_user_email_invalid():
user_data = UserInputData(
username="test_user",
age=25,
email="test@xxx.com"
)
assert not any(user_data.email.endswith(suffix) for suffix in UserDataRule.ALLOW_EMAIL_SUFFIX)
3. Vibe Coding核心实现
基于上述SDD数据模型、TDD测试标准,编写用户数据校验处理类,实现逐项数据校验、结果返回功能。
from sdd_data import UserInputData, UserProcessResult, UserDataRule
class UserDataProcessor:
"""用户数据处理核心类"""
def validate_data(self, user_data: UserInputData) -> UserProcessResult:
"""数据校验+处理核心逻辑"""
# 用户名校验
if len(user_data.username) < 3:
return UserProcessResult(is_valid=False, msg="用户名长度不能小于3位")
# 年龄校验
if not (UserDataRule.MIN_AGE <= user_data.age <= UserDataRule.MAX_AGE):
return UserProcessResult(is_valid=False, msg=f"年龄需在{UserDataRule.MIN_AGE}-{UserDataRule.MAX_AGE}周岁之间")
# 邮箱格式校验
if not any(user_data.email.endswith(suffix) for suffix in UserDataRule.ALLOW_EMAIL_SUFFIX):
return UserProcessResult(is_valid=False, msg="邮箱格式不合法,请使用指定邮箱后缀")
# 合法数据处理
process_data = {
"username": user_data.username.strip(),
"age": user_data.age,
"email": user_data.email.strip(),
"phone": user_data.phone.strip() if user_data.phone else "未填写"
}
return UserProcessResult(is_valid=True, msg="数据校验通过", data=process_data)
4. 功能验证
编写主函数测试代码,传入合法与非法两组数据,打印AI生成代码的处理结果,验证代码是否符合预期。
if __name__ == '__main__':
# 初始化处理器
processor = UserDataProcessor()
# 测试合法数据
valid_data = UserInputData(username="developer", age=28, email="dev@gmail.com", phone="13900139000")
result = processor.validate_data(valid_data)
print("合法数据处理结果:", result)
# 测试非法数据(年龄不达标)
invalid_data = UserInputData(username="test", age=17, email="test@qq.com")
result = processor.validate_data(invalid_data)
print("非法数据处理结果:", result)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)