🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/mattpocock/skills/ubiquitous-language
💡 提示:需要 Node.js 和 NPM
统一语言
从当前对话中提取并规范领域术语,形成一致的词汇表,并保存到本地文件中。
流程
- 扫描对话,识别与领域相关的名词、动词和概念
- 识别问题:
- 同一个词被用于不同的概念(歧义)
- 不同的词被用于同一个概念(同义词)
- 模糊或过载的术语
- 提出规范词汇表,对术语选择给出明确的意见
- 写入工作目录中的
UBIQUITOUS_LANGUAGE.md,使用下方格式 - 在对话中输出摘要
输出格式
编写一个结构如下的 UBIQUITOUS_LANGUAGE.md 文件:
# 统一语言
## 订单生命周期
| 术语 | 定义 | 应避免的同义词 |
|------|-----------|-----------------|
| **订单** | 客户购买一个或多个商品的请求 | 购买、交易 |
| **发票** | 发货后发送给客户的付款请求 | 账单、付款请求 |
## 人员
| 术语 | 定义 | 应避免的同义词 |
|------|-----------|-----------------|
| **客户** | 下订单的个人或组织 | 顾客、买家、账户 |
| **用户** | 系统中的认证身份 | 登录名、账户 |
## 关系
- 一张**发票** 属于且仅属于一个**客户**
- 一个**订单** 会产生一张或多张**发票**
## 示例对话
> **开发人员:** "当一个**客户** 下了一个**订单**,我们会立即创建**发票**吗?"
> **领域专家:** "不会 — 只有在**发货**被确认后才会生成**发票**。如果商品分多次**发货**,一个**订单**可以产生多张**发票**。"
> **开发人员:** "所以如果一次**发货**在发出前被取消了,就不会为其生成**发票**?"
> **领域专家:** "正是如此。**发票**的生命周期与**发货**相关,而非**订单**。"
## 标记的歧义
- "账户"一词被用来同时指代**客户**和**用户**——这是两个不同的概念:**客户**下订单,而**用户**是一个认证身份,可能代表也可能不代表一个**客户**。
规则
- 要有主见。 当同一个概念有多个词汇时,选择最好的一个,并将其他列作应避免的同义词。
- 明确标记冲突。 如果对话中某个术语的使用存在歧义,在“标记的歧义”部分明确指出,并给出清晰的建议。
- 保持定义精炼。 最多一句话。定义它是什么,而不是它做什么。
- 展示关系。 使用粗体标记术语名称,并在合适处说明基数关系。
- 只包含领域术语。 除非具有特定领域含义,否则跳过通用编程概念(数组、函数、端点)。
- 当自然聚类出现时(例如按子领域、生命周期或参与者),将术语分组到多个表格中。每个组有自己的标题和表格。如果所有术语都属于一个单一的、有凝聚力的领域,一个表格就足够了——不要强行分组。
- 编写一个示例对话。 一段简短的对话(3-5 次交流),发生在开发人员和领域专家之间,展示术语如何自然地互动。对话应阐明相关概念之间的界限,并展示术语的精确使用。
重新运行
在同一对话中再次调用此技能时:
- 读取现有的
UBIQUITOUS_LANGUAGE.md - 合并后续讨论中出现的新术语
- 如果理解有所深化,更新相关定义
- 用“(已更新)”标记更改过的条目,用“(新增)”标记新条目
- 再次标记任何新的歧义
- 重写示例对话以融入新术语
输出后说明
写入文件后,声明:
我已编写/更新了
UBIQUITOUS_LANGUAGE.md。从现在起,我将一致地使用这些术语。如果我偏离了这些语言,或者您注意到有应添加的术语,请告诉我。
📄 原始文档
完整文档(英文):
https://skills.sh/mattpocock/skills/ubiquitous-language
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)