SuperAPI AI 工具集

codebase-design

编程与开发

查看项目

更新于 10-16 05:50

技能介绍

用途:为设计或重构代码提供统一的语言与原则,目标是让调用方获得杠杆、维护者获得局部性、所有人获得可测试性。

主要概念:模块指任何具有接口与实现的东西,刻意不限定规模,可为函数、类、包或跨层切片。接口指调用方正确使用模块所需知道的一切,包括类型签名、不变式、顺序约束、错误模式、必需配置与性能特征。实现指模块内部代码体。深度指接口处的杠杆,即调用方或测试每学习一单位接口可驱动的行为量;大量行为藏在较小接口之后为深,接口几乎与实现一样复杂为浅。接缝是可在不编辑该处的情况下改变行为的位置,也是接口所在之处。适配器是在接缝处满足接口的具体事物,描述角色而非内容。

设计时自问:能否减少方法数量、简化参数、隐藏更多复杂度。原则包括:深度是接口属性而非实现属性;删除测试,若删掉模块复杂度消失则是直通,若复杂度在 N 个调用方重现则值得保留;接口即测试面,调用方与测试穿过同一接缝;只有一个适配器意味着假设接缝,两个才意味着真实接缝,没有实际变化就不要引入接缝。

可测试性建议:接受依赖而非创建依赖;返回结果而非产生副作用;缩小表面积。

限制与说明:资料未提供安装命令、代码示例之外的运行步骤、收费或平台信息。延伸阅读指向 DEEPENING.md 与 DESIGN-IT-TWICE.md,具体内容暂未提供。