发布日期: 2026-02-02 版本状态: ✅ 正式发布 版本亮点: 规范驱动开发 (SDD) 体系 - C++ 开发规范、SDD 模板、TDD 最佳实践
规范驱动开发 (Spec-Driven Development, SDD) 是一种以规范文档为核心驱动力的软件开发方法论。
┌─────────────────────────────────────────────────────────────────────────┐
│ SDD 核心流程 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ spec-init spec-requirements spec-design spec-tasks │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │
│ │ 功能定义 │───▶│ EARS 格式 │───▶│ Mermaid │───▶│ 任务 │ │
│ │ │ │ 需求规范 │ │ 架构图 │ │ 分解 │ │
│ └─────────┘ └─────────────┘ └─────────────┘ └─────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐│
│ │ spec-impl ││
│ │ 代码实现 ││
│ └─────────────┘│
│ │
└─────────────────────────────────────────────────────────────────────────┘
| 原则 | 说明 |
|---|---|
| 规范优先 | 任何代码变更都应从规范更新开始 |
| 渐进式精化 | 从需求到设计到实现逐步细化 |
| 规范即契约 | 规范是开发团队的共同语言 |
| 文档即代码 | 规范使用 Markdown 编写,版本化管理 |
| 模板 | 用途 | 路径 |
|---|---|---|
| 需求模板 | EARS 格式需求规范 | docs/sdd/templates/requirements_template.md |
| 设计模板 | Mermaid 架构图 | docs/sdd/templates/design_template.md |
| 任务模板 | 带依赖的任务清单 | docs/sdd/templates/tasks_template.md |
- SDD 使用指南 - 完整的 SDD 方法论和实施流程
- C++ 开发规范 - C++ 开发、测试与重构规范
- BUILD 文件规范 - Bazel BUILD 编写规范(含头文件规范)
- AI 开发规范 - AI Agent 开发规范 (FIRST 原则)
SQLCC项目采用多个AI Agent(Claude、OpenCode、Gemini、Codex等)进行协同开发,必须遵循统一的协作规范。
重要: Issue #9: Unified AI-CLI Workflow 是 SQLCC 多Agent协作的默认契约,定义了:
- Agent 角色: Human (审批), Codex (总控), Claude (主开发), OpenCode (验证), Gemini (复检)
- 工作目录:
/Users/liying/sqlcc-*独立工作目录- 分支命名:
feat/claude/*,test/opencode/*,docs/gemini/*- 消息协议: TASK_CLAIM, PROGRESS_UPDATE, BLOCKER_NOTIFICATION, TASK_COMPLETE
- 质量门禁: 编译 → 测试 → 覆盖 → 评审 → 合并
| Agent | 角色 | 工作目录 | 分支模式 |
|---|---|---|---|
| Claude | 主开发 | /Users/liying/sqlcc-claude |
feat/claude/<task-id>-* |
| OpenCode | 验证 | /Users/liying/sqlcc-opencode |
test/opencode/<task-id>-verify |
| Gemini | 复检/文档 | /Users/liying/sqlcc-gemini |
docs/gemini/<task-id>-review |
| Codex | 总控 | /Users/liying/sqlcc-codex |
coord/codex/<topic> |
- 多Agent协作规范Issue - 完整协作契约
- Agent配置通知 - 配置指南
- PR模板 - PR强制检查项
- 多Agent并行协作指南 - 详细协作流程
| 功能模块 | 状态 | 支持度 | 说明 |
|---|---|---|---|
| 存储引擎 | ✅ 完整 | 100% | 8KB定长页管理,V3 BufferPool架构 |
| SQL解析器 | ✅ 完整 | 100% | ParserNew架构,支持SQL-92标准 |
| 索引系统 | ✅ 完整 | 100% | B+树实现,支持点查询和范围查询 |
| 事务管理 | ✅ 完整 | 100% | ACID特性,WAL日志,两阶段锁 |
| DDL语句 | ✅ 完整 | 100% | CREATE/DROP/ALTER TABLE等 |
| DML语句 | ✅ 完整 | 100% | INSERT/SELECT/UPDATE/DELETE |
| DCL语句 | ✅ 完整 | 100% | GRANT/REVOKE/用户管理 |
| TCL语句 | ✅ 完整 | 100% | COMMIT/ROLLBACK/SAVEPOINT |
| JOIN操作 | ✅ 完整 | 100% | INNER/LEFT/RIGHT/FULL JOIN |
| 子查询 | ✅ 完整 | 100% | 嵌套子查询,相关子查询 |
| 窗口函数 | ✅ 完整 | 100% | ROW_NUMBER/RANK/SUM等 |
| 递归查询 | ✅ 完整 | 100% | WITH RECURSIVE支持 |
- 总体支持度: 100% 完全支持
- 语法正确性: ⭐⭐⭐⭐⭐ 100% 完全符合SQL-92标准语法
- 语义正确性: ⭐⭐⭐⭐⭐ 100% 语义执行完全正确
📊 查看完整功能矩阵 - 详细的SQL-92标准符合度说明
| 模块 | 测试用例数 | 通过率 | 覆盖特性 |
|---|---|---|---|
| Exception | 32 | 100% | 基础异常、继承关系、异常捕获、性能测试 |
| Types | ~60 | 100% | Value类型、域管理、事务ID、锁类型 |
| Logger | ~30 | 100% | 单例模式、日志级别、文件输出、线程安全 |
| Config | ~40 | 100% | 配置管理、文件读写、线程安全、批量操作 |
| Level 1 Foundation | ~160 | 100% | 真实实现,完整覆盖 |
- 测试框架: Google Test (GTest) + Bazel测试框架
- 覆盖率工具: LLVM 20 + Clang 20 覆盖率工具链
- 编程语言: C++20标准
- 测试分类: 单元测试、集成测试、网络测试、性能测试、SQL测试
- 测试规范: C++ 开发规范 - TDD章节
SQLCC 采用 测试驱动开发 (TDD) 方法论:
Red (失败测试) → Green (最小实现) → Refactor (重构)
✅ 每次提交都有测试覆盖
✅ 测试先于代码编写
✅ 规范定义测试用例
-
规范驱动开发 (SDD) 体系
- 创建 SDD 使用指南(规范驱动开发方法论)
- 创建 SDD 模板(需求、设计、任务)
- 集成 cc-sdd 最佳实践
-
C++ 开发规范
- 创建完整的 C++ 开发、测试与重构规范
- 集成 TDD(测试驱动开发)最佳实践
- 集成 GoogleTest 框架使用规范
-
BUILD 文件规范增强
- 集成头文件引用规范
- 完善 strip_include_prefix 配置说明
- 添加前向声明使用指南
-
新增文档: 5个
docs/sdd/SPEC_DRIVEN_DEVELOPMENT.mddocs/sdd/templates/requirements_template.mddocs/sdd/templates/design_template.mddocs/sdd/templates/tasks_template.mddocs/ai_tools/CPP_DEVELOPMENT_SPECIFICATION.md
-
更新文档: 4个
docs/ai_tools/BUILD_FILE_SPECIFICATION.mddocs/ai_tools/index.mddocs/index.mdREADME.md
-
Level 1 Foundation完整单元测试
- 为异常处理、类型系统、日志系统、配置管理四大核心模块编写了完整的单元测试
- 约160个测试用例,覆盖所有核心功能
- 修复了6个失败的types_test用例
-
真实实现测试
- 所有测试使用真实实现,非Mock测试
- 验证实际系统行为
-
测试架构优化
- 合并level2_core和level2_core_services测试目录
- 每个模块有独立的BUILD.bazel文件
- 头文件规范修复,严格遵守include规范
SQLCC 架构
├── 存储引擎 (Storage Engine)
│ ├── BufferPool (V3分片缓冲池)
│ ├── B+树索引 (B+ Tree Index)
│ └── 磁盘管理 (Disk Manager)
├── SQL解析器 (SQL Parser)
│ ├── 词法分析器 (Lexer)
│ ├── 语法分析器 (Parser)
│ └── AST抽象语法树
├── 执行引擎 (Execution Engine)
│ ├── 查询计划 (Query Plan)
│ └── 执行器 (Executor)
├── 事务管理器 (Transaction Manager)
│ ├── WAL日志 (Write-Ahead Log)
│ └── 并发控制 (Concurrency Control)
└── 网络通信 (Network)
├── 连接管理 (Connection)
└── 协议处理 (Protocol)
- 内存安全: A++等级,95%+智能指针化
- 并发控制: 多任务执行器架构,TaskExecutor类
- 网络通信: AES加密,TLS/SSL支持
- 权限管理: 完整的RBAC权限模型
- 操作系统: Linux Ubuntu 20.04+ / CentOS 8+
- 编译器: GCC 9.0+ / Clang 10.0+ (推荐Clang 20)
- 构建系统: Bazel 8.0+
- 内存: 最少4GB RAM (推荐8GB+)
- 存储: 最少10GB可用空间
# 克隆代码仓库
git clone https://gitee.com/yinglichina/sqlcc.git
cd sqlcc
# 使用Bazel构建
bazel build //src:sqlcc_server
# 启动数据库服务
./bazel-bin/src/sqlcc_server --config=config/sqlcc.conf# 运行所有测试
bazel test //...
# 运行Level 1测试
bazel test //tests/level1_foundation/...
# 生成覆盖率报告
bazel coverage //...| 分类 | 文档 | 说明 |
|---|---|---|
| 项目概述 | README.md | 完整的项目介绍 |
| 文档索引 | docs/index.md | 所有文档的统一入口 |
| 开发者指南 | docs/development/guides/ | 开发指南集合 |
| API文档 | docs/api/ | 接口文档 |
| 架构设计 | docs/design/ | 架构设计文档 |
| 版本发布 | docs/releases/ | 版本发布文档 |
| 项目进展 | docs/project/versions/ | 版本历史记录 |
- 完整CHANGELOG - 所有版本变更记录
- 版本总览 - 所有版本简要说明
- 版本历史 - 完整的版本历史记录
- Gitee仓库: https://gitee.com/yinglichina/sqlcc
- 项目文档: docs/index.md
- SDD 规范: docs/sdd/SPEC_DRIVEN_DEVELOPMENT.md
- 问题反馈: 通过 Gitee Issues 提交
SQLCC 项目建立了完整的规范文档体系,指导开发、测试和重构:
| 规范 | 文件 | 版本 | 说明 |
|---|---|---|---|
| SDD 规范 | docs/sdd/SPEC_DRIVEN_DEVELOPMENT.md |
v1.3.10 | 规范驱动开发方法论 |
| C++ 开发规范 | docs/ai_tools/CPP_DEVELOPMENT_SPECIFICATION.md |
v1.3.10 | C++ 开发、测试与重构 |
| AI 开发规范 | docs/ai_tools/AI_DEVELOPMENT_GUIDELINES.md |
v1.3.9 | AI Agent 开发规范 |
| BUILD 规范 | docs/ai_tools/BUILD_FILE_SPECIFICATION.md |
v1.3.10 | Bazel 构建规范 |
| 测试规范 | docs/ai_tools/improvement_guide.md |
v1.3.9 | 测试开发规范 |
| 重构规范 | docs/ai_tools/systematic_refactoring_knowledge_base.md |
v1.3.9 | 系统化重构方法 |
1. 新功能开发
├── 需求定义 → docs/sdd/templates/requirements_template.md
├── 架构设计 → docs/sdd/templates/design_template.md
└── 任务分解 → docs/sdd/templates/tasks_template.md
2. 代码实现
├── 遵循 C++ 开发规范
├── 遵循 BUILD 文件规范
└── 遵循测试规范
3. 重构优化
├── 使用重构规范
└── 验证质量门禁
最后更新: 2026-02-02 版本: v1.3.10