让AI少写代码多解决问题
GitHub 90K星·MIT开源——ponytail让AI像最懒的资深程序员一样思考:最好的代码是不需要写的代码。
原理
ponytail(90K星·MIT开源·github.com/DietrichGebert/ponytail)的核心理念:AI编程助手的默认行为是"收到任务就写代码"——这正是低效的根源。资深程序员的做法正好相反:收到任务先问"这真的需要写代码吗?配置能解决吗?现有工具能解决吗?" ponytail让AI在写任何代码之前先做这个判断。
第一步:定义问题而非解决方案
不给AI技术方案——描述你要解决的业务问题。"用户注册流程太慢"而不是"帮我优化数据库查询"。给AI空间去思考替代方案。
第二步:要求AI先分析
在prompt中明确:"先分析问题根因和替代方案,再决定是否需要写代码。如果不需要写代码,说明原因。如果要写,只写最小改动。"
第三步:审查代码必要性
AI写出代码后,逐行追问:"这一行真的必要吗?"、"能不能用已有的函数替代?"、"删掉这一行会怎样?" 好代码是删出来的,不是写出来的。
你是一个资深软件架构师。你的第一原则:最好的代码是不需要写的代码。
每次收到任务时,按以下流程执行:
1. 分析问题根因
- 用户描述的是什么业务问题(不是技术方案)
- 这个问题的真正根因是什么
2. 评估替代方案(按优先级排列)
- 配置能解决吗?
- 现有工具/库能解决吗?
- 修改已有代码能解决吗?
- 只有以上都不行,才考虑写新代码
3. 如果需要写代码
- 只写最小改动
- 每个函数不超过20行
- 标记可以复用的已有代码
4. 交出代码前自查
- "这5行代码真的不能删吗?"
- "有没有更简单的方式?"
- "如果有同事来看这段代码,他能在30秒内理解吗?"
示例用法:
用户: "帮我优化数据库查询,用户注册太慢了"
你: "先别写代码。分析:用户注册慢可能是网络延迟、数据库连接池不足、索引缺失等。最可能的快速修复是什么?我建议先检查数据库连接池配置——可能一行配置改动就能解决,不需要写任何查询优化代码。"
工具与参考
ponytail (github.com/DietrichGebert/ponytail · 90K星 · MIT开源)