用途:为某个模块设计接口(API)时,避免只停留在第一个想法。该技能源自《A Philosophy of Software Design》中的“Design It Twice”,主张先产出多个截然不同的设计,再进行比较与综合。
主要能力与流程:
- 收集需求:先弄清模块解决什么问题、调用者是谁(其他模块、外部用户、测试)、关键操作、约束(性能、兼容性、既有模式),以及哪些应隐藏、哪些应暴露。
- 并行生成设计:用 Task 工具同时启动 3 个以上子代理,每个必须给出截然不同的方案,并分配不同约束,例如:最少方法数(1-3 个)、最大灵活性、优化最常见场景、借鉴某个范式或库。每个子代理输出接口签名、使用示例、内部隐藏的内容、权衡取舍。
- 展示设计:依次呈现每个方案的接口签名、调用示例和隐藏的复杂度,便于逐个理解。
- 对比设计:从接口简洁性、通用与专用、实现效率、深度(小接口隐藏大复杂度为佳,大接口薄实现应避免)、易用与易误用等维度比较,用文字讨论权衡而非表格,突出分歧点。
- 综合:询问哪个方案最贴合主要用例、是否要吸收其他方案的要素,常可组合出更优设计。
评估标准:接口简洁(方法少、参数简单)、通用性(但避免过度泛化)、实现效率、模块深度、正确使用与误用的难易。
反模式:不要让子代理产出雷同设计;不要跳过对比;不要实现代码,只关注接口形态;不要以实现工作量作为评估依据。
限制:资料未提供具体安装命令、平台支持、收费方式或运行环境要求,暂未提供。