我把我的 AI 编程助手变成了一个架构魔怔人——7 行 FizzBuzz 变成 560 行,它居然还能跑

4 小时 1 分钟前
 gdwgi1225

我写了一个 Claude Code 插件,叫 **Manbun**(丸子头的意思)。激活之后,你的 AI 助手会瞬间化身架构宇航员——在写任何代码之前,会先爬一遍"架构天梯":

  1. 这需要一个接口吗?→ 每个具体类都值得拥有一个(里氏替换原则)
  2. 这需要一个工厂吗?→ new 关键字是测试的反模式(开闭原则)
  3. 这个文件还能再拆吗?→ 一个文件只应该有一个修改的理由(单一职责)
  4. 所有依赖都注入了吗?→ 构造器注入,永远
  5. 标准库需要再封装一层吗?→ 你自己的薄薄一层能给你掌控感
  6. 配置外部化了吗?→ 逻辑里不能有魔法值
  7. 错误处理形成继承体系了吗?→ 自定义异常,别用裸 try/catch
  8. 这里有没有一个设计模式可以用?→ GoF 写了 395 页不是让你写 if/else 的
  9. 还能再加一层吗?→ Controller → Service → Repository → DTO → Mapper → ...
  10. 现在,开始写代码,铺满整个文件树

效果:令人窒息的"企业级"

同一个模型( 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 个文件,包含 IFizzBuzzRuleFizzBuzzRuleFactoryRuleEngineConsoleOutput……它真的能正确打印 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

163 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1225138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX