闭卷说清“统一语言与领域词典”的对象、规则、制品和一个失败反例。
软件工程 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷说清“实体、值对象与聚合”的对象、规则、制品和一个失败反例。
闭卷说清“状态机与生命周期”的对象、规则、制品和一个失败反例。
闭卷说清“业务不变量与决策表”的对象、规则、制品和一个失败反例。
闭卷说清“限界上下文与上下文映射”的对象、规则、制品和一个失败反例。
闭卷说清“事件风暴与时间线建模”的对象、规则、制品和一个失败反例。
闭卷说清“用示例澄清模型并反查”的对象、规则、制品和一个失败反例。
核心:实体靠身份延续,值对象靠属性相等,聚合划定一次事务保持一致的边界;规则:聚合边界围绕业务不变量选择,不围绕页面或表数量选择;应能围绕“订单是实体,金额与币种组成Money值对象,订单项只能经订单聚合根修改”交付可复核制品。
核心:同一个词在产品、财务和代码中含义不一致,会把歧义固化进接口;规则:词典条目必须含定义、反例、状态和责任边界,并随决策版本化;应能围绕“明确‘订单’‘支付单’‘履约单’的身份、生命周期和拥有团队,禁止在评审中混用”交付可复核制品。
核心:不变量描述所有合法状态都成立的条件,决策表覆盖多条件组合;规则:先写不变量再选数据结构;每条规则至少有正例、边界例和反例;应能围绕“优惠资格由会员级别、地区、时间和商品类型决定,用决策表找出遗漏组合与冲突规则”交付可复核制品。
核心:状态机把允许状态、事件、守卫条件和副作用变成可枚举契约;规则:任何状态迁移都要说明前置状态、权限、原子变化、外部副作用和重试语义;应能围绕“退款从requested到approved再到settled,拒绝settled后再次approve,并记录操作者与幂等键”交付可复核制品。
核心:按过去式事件回放业务时间线,可以发现命令、策略、读模型和异常分支;规则:事件必须是已经发生的事实;命令可能被拒绝,二者不能混写;应能围绕“从‘订单已提交’到‘库存已保留’再到‘支付已确认’,标出超时、重复和人工介入”交付可复核制品。
核心:大型领域没有一个万能模型;不同上下文可对同一现实使用不同表示;规则:跨边界只共享明确契约,不共享隐含数据库语义或内部对象;应能围绕“销售上下文的Customer重视商机,结算上下文的Payer重视法定主体,通过防腐层转换”交付可复核制品。
核心:抽象模型只有经具体输入输出和反例检验才可信;规则:示例应覆盖等价类与边界值,反例必须能推翻至少一个错误解释;应能围绕“用三笔跨午夜退款反查账期、时区、舍入和重复回调,迫使团队修正金额模型”交付可复核制品。