bad-smell · diff

git:20260718.f90f3b5 to git:20261030.60282cf

18 added, 3 removed. Audit A to A.

---
name: bad-smell
- description: 你觉得代码写得好吗?当你觉得代码难于理解、设计混乱或不易维护时主动使用本技能。
+ description: 识别到代码坏味道时,阅读本技能并及时重构。例:重复代码,过长函数,过大的类,过长参数列,数据泥团,依恋情结,基本类型偏执,重复的 Switch,拒绝遗赠,发散式变化,霰弹式修改。
user-invocable: true
---
# bad-smell
- 当你觉得代码有坏味道的时候,意味着代码可能需要重构。
+ 检查代码是否有以下坏味道:
+ - 代码臃肿
+ - 重复代码(Duplicated Code):多个地方有结构相似的代码,复制粘贴导致修改时容易遗漏。
+ - 过长函数 / 方法(Long Method):一个函数写了成百上行,逻辑复杂,难以理解。
+ - 过大的类(Large Class):一个类承担了太多职责,内聚性差。
+ - 过长参数列(Long Parameter List):函数参数过多(通常超过5个),调用和阅读都很吃力。
+ - 数据泥团(Data Clumps):总是一起出现的几个数据项(如一些字段总是结伴出现在不同的类或方法中),应封装成对象。
+ - 面向对象滥用
+ - 依恋情结(Feature Envy):某个函数对另一个类的兴趣远高于自己所处的类,频繁调用别人的数据。
+ - 基本类型偏执(Primitive Obsession):过度使用基本数据类型(如用字符串或整型表示复杂的业务概念,而不是封装成对象)。
+ - 重复的 Switch(Repeated Switches):到处是相同的 switch-case 或 if-else 条件分支,扩展新类型时需要修改多处。
+ - 拒绝遗赠(Refused Bequest):子类继承了父类,却不实现或不需要父类的方法和数据。
+ - 变更时的阻碍
+ - 发散式变化(Divergent Change):一个类经常因为不同的原因在不同的方向上发生修改(说明职责太杂)。
+ - 霰弹式修改(Shotgun Surgery):每遇到一个微小变化,就得到处修改许多个不同的类。
+
项目当前处于早期开发阶段。**架构债务越早处理越好。**
- 若你能“嗅到”明显更优的设计,且范围可控无风险,请立刻随手优化。
+ 若你能“嗅到”明显更优的设计,且范围可控无风险,请立刻随手优化、重构。
如果重构范围较大、风险较高或需要进一步规划,请在 `{project_root}/docs/freeform/yymmdd-{summary}.smell.md` 简单记录你发现的坏味道,然后回到原有任务。