SuperAPI AI 工具集

deep-modules

编程与开发

查看项目

更新于 10-15 19:56

技能介绍

用途:deep-modules 提供设计深模块的词汇与规则。深模块指大量行为藏在很小的接口之后,接口位于干净的接缝处,并可通过该接口测试。目标是让调用方获得回报、维护者获得局部性、所有人获得可测试性。

术语:模块指任何有接口和实现的东西,如函数、类、包或跨层切片;接口指调用方正确使用模块所需知道的一切,包括类型、不变量、顺序、错误模式、必需配置和性能特征;实现指模块内部;深度指每学习一单位接口可让调用方或测试触发的行为量;接缝是 Michael Feathers 的术语,指无需在该处编辑即可改变行为的位置,也是模块接口所在之处;适配器是在接缝处满足接口的具体事物,是一种角色而非实体;回报指调用方从深度中获得的价值;局部性指维护者从深度中获得的价值。

规则:DESIGN-1 深模块,方法更少、参数更简单、隐藏更多,可用删除测试判断;DESIGN-2 接口即测试面,调用方与测试穿过同一接缝,想绕过接口测试说明模块形状不对;DESIGN-3 两个适配器才构成接缝,生产加测试算两个;DESIGN-4 加深后替换测试,旧浅模块测试成为浪费应删除;DESIGN-5 经同意后设计两次,可让三个或更多智能体各自产出截然不同的接口,再比较深度、局部性和接缝位置。

可测试性设计:接受依赖而非创建依赖,返回结果而非产生副作用,保持表面小。

限制与说明:资料未提供安装命令、平台、收费或价格信息。正文还提到被拒绝的框架,如以实现行数与接口行数之比衡量深度会奖励填充,以及“边界”一词因与限界上下文重载而应改用接缝或接口。深入内容见 references/deepening.md 与 references/design-it-twice.md,配套技能包括 test-first、decision-records 和 grill-plan。