用途:为代码设计与重构提供统一语言和原则,目标是让调用方获得杠杆、维护者获得局部性、所有人获得可测试性。
主要能力:定义并区分 Module(模块)、Interface(接口)、Implementation(实现)、Depth(深度)、Seam(接缝)、Adapter(适配器)、Leverage(杠杆)、Locality(局部性)等术语;用“删除测试”判断模块是否为直通;强调接口即测试面;主张“一个适配器只是假想接缝,两个适配器才是真接缝”。
使用方式:在设计与重构代码时统一使用上述术语,不替换为 component、service、API、boundary。设计可测试接口时遵循:接受依赖而非创建依赖,例如 function processOrder(order, paymentGateway) {};返回结果而非产生副作用,例如 function calculateDiscount(cart): Discount {};保持小接口面。
适用场景:设计或改进模块接口、寻找深化机会、决定接缝位置、评估模块深度与可测试性。
限制:资料未提供安装命令、平台、收费或价格信息;深化集群与替代接口设计分别参见 DEEPENING.md 与 DESIGN-IT-TWICE.md,具体内容暂未提供。