我写了一个 Claude Code 插件,叫 **Manbun**(丸子头的意思)。激活之后,你的 AI 助手会瞬间化身架构宇航员——在写任何代码之前,会先爬一遍"架构天梯":
- 这需要一个接口吗?→ 每个具体类都值得拥有一个(里氏替换原则)
- 这需要一个工厂吗?→
new关键字是测试的反模式(开闭原则) - 这个文件还能再拆吗?→ 一个文件只应该有一个修改的理由(单一职责)
- 所有依赖都注入了吗?→ 构造器注入,永远
- 标准库需要再封装一层吗?→ 你自己的薄薄一层能给你掌控感
- 配置外部化了吗?→ 逻辑里不能有魔法值
- 错误处理形成继承体系了吗?→ 自定义异常,别用裸 try/catch
- 这里有没有一个设计模式可以用?→ GoF 写了 395 页不是让你写 if/else 的
- 还能再加一层吗?→ Controller → Service → Repository → DTO → Mapper → ...
- 现在,开始写代码,铺满整个文件树
效果:令人窒息的"企业级"
同一个模型( DeepSeek V4 Pro ),同样跑通原测试:
| 任务 | 原始代码 | Manbun 后 | 膨胀倍数 | 设计模式 |
|---|---|---|---|---|
| 计数器按钮 | 13 行 | ~540 行 (23 文件) | 42x | 策略、观察者、建造者、工厂、上下文 |
| FizzBuzz | 7 行 | ~560 行 (22 文件) | 79x | 策略、责任链、工厂、适配器、异常体系 |
| 邮箱验证 | 18 行 | ~1,200 行 (22 文件) | 67x | 责任链、策略、工厂、建造者、观察者、装饰器 |
| 防抖函数 | 22 行 | ~930 行 (16 文件) | 42x | 策略、观察者、工厂、DI 、异常体系 |
| Todo API (GET) | 19 行 | ~560 行 (15 文件) | 30x | 仓库、服务、控制器、工厂、DTO 、映射器、HATEOAS |
~30-80 倍代码膨胀 · ~15-22 倍文件数 · 每次 5-7 个设计模式 · 全部能编译能跑能过测试
那个 FizzBuzz 我印象最深刻——7 行的 for 循环变成了 6 个文件,包含 IFizzBuzzRule、FizzBuzzRuleFactory、RuleEngine、ConsoleOutput……它真的能正确打印 1 到 100 。
恶搞之外,其实也有一丢丢学习价值
做这个东西的初衷当然是整活儿,但说实话,看它生成的那些"过度工程化"代码,意外地对设计模式有了更直观的理解——毕竟你亲眼看到一个计数器是怎么被策略模式、观察者模式、建造者模式一层层武装起来的。某种程度上算是一个"反模式"教学工具。
当然,主要还是图一乐。
跟 Ponytail 的瑜亮情结
这个项目其实是对另一个项目 Ponytail 的"镜像回应"。Ponytail 是一个懒散的马尾辫程序员人格,追求的是"最少的代码能跑就行",能把你的代码压缩 54%~94%。Manbun 是他的死对头——丸子头架构师,追求的是"最多的架构还能跑就行"。
Ponytail: "他啥也不说。他写一行。它能跑。"
Manbun: "他看见了全局。他写了 200 行。它居然也能跑。"
同一枚硬币的正反面,看你今天想用什么人格写代码。
安装(如果你也想折磨自己)
/plugin marketplace add sudoplayer/manbun
/plugin install manbun@manbun
/reload-plugins
然后正常写代码就行。有三档强度:lite( 3-5x 膨胀)、full(默认,30-80x )、ultra( FAANG 级别,80-200x ,附带事件溯源 + CQRS + 功能开关 + 国际化)。
想恢复正常就说一句 **"shave the manbun"**(把丸子头剃了),AI 就会变回正常人。
免责声明:本人在生产环境中使用本插件的经历为 0 次,并且打算永远保持这个记录。如果你的 PR 因为"缺少 CounterObserver 接口"被拒,别来找我。
GitHub: github.com/sudoplayer/manbun