think-model-first

Installation
SKILL.md

建模先于代码

回答的问题:代码该长成什么形状。偏函数是「不是对所有输入都有定义的函数」,例如「关闭会话」只在会话打开时有定义。全化是把剩下的情况也定下来:会话已关闭时再关一次,答「已关闭」,不报错也不崩。模型定义的是实现的形状,所以它排在代码之前。

三句动作

  1. 把状态和操作写成偏函数:每个操作在哪些前置状态下有定义。 状态名与操作名取自统一语言。
  2. 全化:定义域之外的每一格给一个确定的答复。 答复是拒绝、幂等返回或显式错误。不变式排除的格写「不可达」,不处理。全化之后实现里不再有「不该发生」的分支。
  3. 翻成领域模型和对象模型再写代码。 概念与边界按领域建模,对象怎样协作按 SOLID,名字取自统一语言。代码里的每个类型能指回模型。

全化表说的是什么必须成立,不是代码该长成什么样。照着它直接写,得到一个按状态分支的大函数,对但难维护;翻成领域模型与对象模型,对的东西才写得简洁、能维护。

各类工作里怎么用

Installs
1
GitHub Stars
1
First Seen
2 days ago