接口双方案
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/design-an-interface 技能到 AI 助手中。
技能介绍
解决接口设计的“第一直觉陷阱”
在软件架构中,基于第一直觉设计的接口往往不是最优解。过早锁定一个平庸的 API 形状,会导致后期高昂的重构成本与调用方适配问题。本技能旨在打破这种“过早定型”的思维惯性,强制你在编码前先审视模块的多种可能形态。
核心工作流与设计哲学
本技能扮演资深架构师,严格遵循《A Philosophy of Software Design》中 "Design It Twice" 的理念。工作流分为五个关键步骤:
- 收集需求:明确模块边界、调用方、关键操作与约束,回答“做什么”与“谁在用”。
- 并行产出:生成 3 套以上差异最大化的方案。例如方案 A 追求
notify()这种极简入口,方案 B 则引入NotificationChannel接口以换取最大灵活性。 - 逐一呈现:先展示每套方案的签名、调用示例及隐藏的复杂度,避免直接抛出对比表。
- 五维对比:从简洁性、通用性、实现效率、深度(小接口隐藏大复杂度)和易误用性进行散文式深度剖析。
- 综合建议:融合多套方案之长,输出最终的
InterfaceDesignSet工件。
适用边界与注意点
本技能专注于接口的形状设计,不涉及具体业务逻辑的落地。它不会直接生成实现代码,也不以“实现成本高低”作为唯一的评价标准。如果你需要直接编写测试用例或业务代码,请将生成的接口方案交给下游的 tdd 或 implement 技能处理。
使用场景
- 在动手写通知模块代码前,想先看到多种接口形状并对比易用性与扩展性
- 探索某模块对外 API 时,希望并行产出最小方法、最大灵活、常用优化等方案
- 评审阶段需要一个 InterfaceDesignSet,明确签名、示例、隐藏复杂度与取舍
- 定接口前想先看性能与兼容性约束下哪种形状更合适
适合人员
- 资深后端工程师:准备定模块对外 API,想在编码前看多套方案并选出最合适的形状
- 架构师:评审团队的接口草案,想用多个维度比较深度、通用性与实现效率
- 全栈开发者:需要快速收敛模块形状,再交给 codebase-design 或 tdd 继续推进
- 技术负责人:在兼容性与性能约束下,想先看不同接口形态的取舍再拍板