用途
ponytail-audit 是一个面向整个代码仓库的过度工程审计工具。它相当于 ponytail-review 的仓库级版本:不针对某次 diff,而是扫描整棵代码树,找出可以删除、简化或替换的冗余代码,并按“削减量最大优先”的顺序给出排名列表。
主要能力
它沿用 ponytail-review 的标签体系,对每项发现进行分类:
- delete:死代码、未使用的灵活性、投机性功能。替换方案:无。
- stdlib:标准库已经提供的手写实现。需要点名对应的函数。
- native:依赖或代码在做平台已经具备的功能。需要点名对应的特性。
- yagni:只有一个实现的抽象、没有人设置的配置、只有一个调用方的层。
- shrink:相同逻辑但行数更少。需要给出更短的写法。
审计时会重点搜寻:标准库或平台已经提供的依赖、单实现接口、只有一个产品的工厂、仅做转发的包装器、只导出一个内容的文件、死标志与死配置、手写标准库实现等。
使用方式
输出格式为每条发现一行,按排名排列:
<标签> <要削减的内容>。<替换方案>。[路径]
结尾汇总:net: -<N> lines, -<M> deps possible。如果没有任何可削减的内容,则输出:Lean already. Ship.
该工具只列出发现,不应用任何修改,属于一次性运行。可通过“stop ponytail-audit”或“normal mode”恢复。
适用场景
适合在需要从整体上审视代码库复杂度、清理冗余实现、减少依赖数量时使用。相比针对单次改动的审查,它更适合定期对仓库做一次全局的“瘦身”盘点。
限制
范围仅限过度工程与复杂度。正确性缺陷、安全漏洞和性能问题明确不在其范围内,应转交给常规的审查流程处理。它只输出发现列表,不会自动应用任何改动。