SuperAPI AI 工具集

dry-principle

通用与其它

查看项目

更新于 10-16 02:36

技能介绍

用途:这是一条编码规则,用于落实 DRY(Don't Repeat Yourself)原则,避免重复编写相同代码或逻辑,从而提升可维护性。

主要能力与要求:通过函数、类、模块、库或其他抽象复用代码,使修改只需在一处进行。规则给出若干“铁律”:在出现至少 3 个相同逻辑的具体实例前,不要抽取共享抽象,过早抽取会产生难以移除的错误抽象;配置值必须保持单一事实来源,同一常量或配置在两处定义会分叉并引发缺陷;不要对仅表面相似、目的不同的代码应用 DRY,否则会把无关概念耦合在一起,导致连锁修改;当抽象需要间接层并掩盖代码行为时,应优先可读性,少量重复往往优于晦涩的辅助函数;新增相似功能时不要首先复制粘贴,应先检查现有抽象能否扩展或参数化。

反模式:在第二次出现时就抽取(Rule of Two)可能因巧合相似而产生错误抽象,应等到第三次出现再抽取(Rule of Three);用共享辅助函数耦合无关概念会让一个领域的变化破坏另一个领域;为消除所有表面重复而过度抽象,会造成需要读三个文件才能理解一个操作的复杂间接层;同一常量在多个配置文件中定义会静默分叉;对测试代码过度 DRY 会使测试难以独立阅读,测试应自包含,测试设置中的少量重复可以接受。

使用方式:规则要求执行记忆协议。开始前运行:cat .claude/context/memory/learnings.md;完成后记录发现的新模式或例外。并假设上下文可能被重置,未写入记忆的内容视为未发生。

适用场景与限制:适用于代码编写与重构中的去重决策,尤其是抽象抽取、配置管理与测试代码。限制在于:资料未提供具体平台、安装方式、收费或效果数据,暂未提供。