一键导入
ubiquitous-language
// 从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。
// 从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。
使用 tracer-bullet 竖向切片法,把 PRD 拆分成彼此独立、可以直接认领的 GitHub issues(并形成对应的实现工单)。适用于用户想把 PRD 转成 issues、创建实现任务,或把 PRD 拆成工作项。
使用 tracer-bullet 竖向切片方法把 PRD 转换成多阶段的落地实施计划,并保存为本地 Markdown 文件(存放在 `./plans/`)。适用于用户希望把 PRD 拆分为多个阶段、生成实施计划、从 PRD 推导阶段计划,或提到 “tracer bullets”。
通过用户访谈创建一个详细的重构计划,并将其拆分成很小的提交(tiny commits),最后以 GitHub issue 的形式归档。适用于用户希望规划一次重构、创建重构 RFC,或把重构拆成安全的渐进步骤。
使用 RED-GREEN-重构(red-green-refactor)循环进行测试驱动开发。适用于用户希望用 TDD 构建新功能或修复 bug,提到 “red-green-refactor”,希望使用集成测试,或询问“test-first development(先写测试)”。
通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。
通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。
| name | ubiquitous-language |
| description | 从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。 |
从当前对话中抽取并形式化领域术语,整理为一份一致的术语表,并保存到本地文件中。
UBIQUITOUS_LANGUAGE.md 到工作目录将写出一个 UBIQUITOUS_LANGUAGE.md 文件,结构如下:
# 统一语言(Ubiquitous Language)
## 订单生命周期(Order lifecycle)
| 术语 | 定义 | 应避免的别名 |
|------|-----------|-----------------|
| **Order** | 客户发起的一次购买一个或多个商品的请求 | Purchase, transaction |
| **Invoice** | 在交付之后发送给客户的付款请求 | Bill, payment request |
## 人员(People)
| 术语 | 定义 | 应避免的别名 |
|------|-----------|-----------------|
| **Customer** | 下单的个人或组织 | Client, buyer, account |
| **User** | 系统中的某个认证身份(authentication identity)| Login, account |
## 关系(Relationships)
- **Invoice** 必然且仅必然属于一个且仅一个 **Customer**
- **Order** 会产生一个或多个 **Invoices**
## 示例对话(Example dialogue)
> **Dev:** “当一个 **Customer** 发起 **Order** 时,我们是否会立即创建 **Invoice**?”
> **领域专家(Domain expert):** “不。只有在确认 **Fulfillment** 之后,才会生成 **Invoice**。如果订单中的商品分批发货(**Shipments**),单个 **Order** 可能会产生多个 **Invoices**。”
> **Dev:** “那如果某个 **Shipment** 在发货前被取消,会不会生成对应的 **Invoice**?”
> **领域专家(Domain expert):** “不会。**Invoice** 的生命周期与 **Fulfillment** 绑定,而不是与 **Order** 绑定。”
## 标记出的歧义(Flagged ambiguities)
- “account” 被同时用来表示 **Customer** 和 **User**——这两个概念是不同的:**Customer** 会下订单;而 **User** 是一种认证身份,它可能代表某个 **Customer**,也可能不代表。
在同一对话中再次调用本技能时:
UBIQUITOUS_LANGUAGE.md写入文件后,在对话里声明:
我已写入/更新
UBIQUITOUS_LANGUAGE.md。从此刻起,我会持续一致地使用这些术语。如果我偏离了这套语言,或你发现某个术语还应当被添加,请告诉我。