Skip to content

L10. 编写工业级 Spec (下):定义数据的灵魂

Vibe Coding 宣言:数据结构是程序的骨架。骨架歪了,长出来的肉也是歪的。

0. 为什么这一课至关重要? (Why It Matters)

  • 不再对不齐:前端要 userId,后端给 id;前端要时间戳,后端给日期字符串。这种扯皮能耗掉你一半的开发时间。
  • 异常才是常态:用户永远不会按你想的那样操作。如果不定义好异常处理,你的系统上线第一天就会崩溃。
  • AI 的精准导航:如果你告诉 Claude “这就存个用户表”,它会随便给你写。如果你告诉它字段类型、约束条件,它就是你的高级 DBA。

1. 目标 (Goal)

学会定义 数据字典 (Data Dictionary),编写清晰的 API 接口文档,并预判 异常流程 (Edge Cases)

2. 核心概念/装备/指令 (The Core)

2.1 数据字典 (The Schema)

每一个数据表,都要有明确的定义:

  • 字段名user_id (下划线还是驼峰?统一规范!)
  • 类型Integer, String, Boolean
  • 约束Unique, Not Null, Default

2.2 API 文档 (The Protocol)

前后端对话的协议:

  • Endpoint: /api/v1/products
  • Method: GET / POST
  • Request: 需要传什么参数?
  • Response: 返回什么数据结构?

2.3 异常情况 (The Edge)

  • Happy Path: 一切顺利的情况。
  • Unhappy Path: 网络断了、参数错了、没权限了、数据库挂了。

3. 实战演练 (Action)

Step 1: 定义数据结构

告诉 Claude:

markdown
# Context
比价系统核心模块。

# Task
请设计 `Product` (商品) 和 `PriceHistory` (价格历史) 的数据库表结构。
使用 Markdown 表格形式,包含字段名、类型、是否必填、备注。

Step 2: 设计 API 接口

让 Claude 生成接口文档:

markdown
# Task
请设计[查询商品价格]的 API 接口。
包含:URL, Method, Request Body (JSON), Response Body (JSON)。
同时列出可能的 Error Codes (如 404 商品不存在, 500 服务器错误)。

Step 3: 拷问异常

这一步最重要。问 Claude:

markdown
# Task
针对[爬虫抓取]环节,请列出至少 5 种可能的异常情况 (Edge Cases),并给出处理建议。
例如:目标网站改版了怎么办?IP 被封了怎么办?

4. 常见问题 (FAQ - Vibe Style)

Q: 数据库选 SQL 还是 NoSQL? A: 新手无脑选 SQL (SQLite/Postgres)。 结构化数据最不容易出错。除非你要存海量日志,否则别碰 MongoDB。

Q: API 文档要写多细? A: 细到字段级别。 尤其是字段类型(字符串 "123" 和数字 123 是不一样的!)。

Q: 异常情况想不全怎么办? A: 让 AI 想! 它见过的 Bug 比你吃过的饭还多。

5. 验收标准 (Definition of Done)

  1. Spec 文档里增加了“数据库设计”章节。
  2. Spec 文档里增加了“API 接口定义”章节。
  3. 有一个“异常处理清单”,列出了至少 3 个核心风险点。

Next Mission: L11. 制定 Roadmap:不打无准备之仗

基于 Claude Code 构建