别让AI在你的项目里“随地大小便”,狠治代码洁癖
兄弟们,有没有觉得现在的AI越来越“鸡贼”了?
你都不需要给它说使用什么开发框架,它给你整得明明白白,命名空间、路由、模型,看着挺像那么回事儿。但你再仔细一瞧那业务逻辑,好家伙,全是一锤子买卖。
它就像个手脚麻利但完全没脑子的力工,你让它砌个墙,它能把砖码得整整齐齐,但它绝对想不到要给你留个窗户。
结果就是,你的项目里多了无数个“一次性”的函数,到处是重复的逻辑,改一个地方,恨不得十个地方跟着报错。这哪是AI编程,这分明是AI“拉屎”,最后还是得咱自己捏着鼻子擦屁股。
痛点一:它是个“临时工”,只管干完,不管“售后”
你让它实现一个订单折扣计算,它就在订单Controller里吭哧吭哧给你写了几十行逻辑。爽不爽?功能是实现了。但下次你需要在命令行、在队列里复用这个计算逻辑呢?它才不管,它会再给你复制一份,再粘一次。
这就是典型的没有“封装思维”。你得在规矩里写死一条:
“所有业务逻辑,一律封装到Service层或Action类中,Controller只负责接收请求和返回响应。严禁在任何Controller或Model中直接编写超过5行的业务逻辑代码。”
这规矩一立,AI就像被戴上了紧箍咒,再也不敢随地“拉”逻辑了。它得老老实实去想,这段逻辑该归哪个类管,该放在哪个目录下。
痛点二:它是个“霸道总裁”,乱改、乱删,还不带通知的
这个更欠揍。你的项目跑了两年,积累了一堆工具类。你让AI加个新功能,它一看,“哎,这个老函数名字不太优雅”,二话不说,直接给你重构了,名字也改了,参数也调了。结果呢?项目里其他十个调用它的地方全部报错。
AI的“洁癖”用错了地方,就是灾难。你得告诉它,什么是“雷区”:
“严禁修改或删除任何已存在的公共方法、类常量或配置文件中的键名。如需调整,必须先创建新方法,并标记旧方法为
@deprecated。对任何核心业务代码的修改,必须先输出修改影响范围,待确认后再执行。”
你看,加上这条规矩,AI就变成了一个“稳重”的程序员,学会“敬畏”老代码了。它想动你核心类的时候,得先写个小作文汇报一下,你敢乱删?
痛点三:它是个“复读机”,同样的代码,能给你写八百遍
这种AI,我愿称之为“Ctrl+C/V工程师”。项目里明明有个现成的 FormatMoneyTrait,它偏不,它要在你的新类里再写一个 format_price 方法。久而久之,你的项目里就充满了各种名字不同、功能一样、实现还略有差异的“野种”函数。
这是缺乏“复用意识”。你得用规矩把它掰过来:
“实现功能前,必须优先检索
app/Traits/、app/Helpers/等目录下是否存在可复用的方法。如有,必须直接使用或通过依赖注入引入,禁止重复造轮子。如果现有方法无法满足需求,应优先考虑扩展现有方法,而非新建。”
这条规矩就是告诉AI,干活前先动动脑子,看看仓库里有什么现成的家伙事儿,别总想着自己从头撸一个。
怎么把这些“灵魂拷问”喂给Trae?
操作其实特简单,咱也不用整花活儿。就在项目根目录下那个 .trae/rules/project_rules.md 文件里,把上面那些黑体字加进去就行。它就是你给AI立下的“天条”。
这里帮你整理好了,直接复制下面内容模板
# 项目编码规范
## 基础规则
1. 用中文回答
2. 关键代码加中文注释
3. 超过20行的代码,考虑拆分
## 代码坏味道处理
### 1. 神秘命名
- 问题:变量/函数/类名不能清晰表达用途
- 处理:重命名为描述性名称
- 示例:把 `fn p()` 改成 `fn calculate_price()`
### 2. 重复代码
- 问题:相同代码出现在多个地方
- 处理:提取为共享函数或类
- 示例:把重复的验证逻辑提取到BaseService
### 3. 过长函数
- 问题:函数超过50行,难以理解和维护
- 处理:按职责拆分为多个小函数
- 示例:把200行的订单处理函数拆分为validate()/calculate()/save()
### 4. 乱改老代码
- 规则:严禁修改或删除已存在的公共方法
- 处理:如需调整,先创建新方法,标记旧方法为@deprecated
- 输出前:必须先列出影响范围,待确认后再执行
## 封装与复用
- 所有业务逻辑封装到Service层,Controller只负责接收请求
- 实现功能前,优先检索 app/Services/、app/Helpers/ 目录下是否有可复用的方法
- 禁止在Controller中写超过5行的业务逻辑
当然,你也可以自己动手,把团队规范文档直接喂给AI,让它帮你转换:
“我想把这个文档变成一个AI项目规则,请帮我聚合和凝练一下,用Markdown格式输出,每一条都要具体、可执行。”
最后说两句
兄弟们,AI现在就像个刚毕业的实习生,技术栈学得挺快,但缺的是“工程素养”。咱要是不给它立规矩,它就能把你的项目霍霍成一锅粥,然后留下一句“代码能跑就行”。
架构不是设计出来的,是约束出来的。人如此,AI亦然。
你的Trae,现在是“架构师”还是“码农”?评论区走一波,看看谁家的规矩最严(变)格(态)!
评论
发表评论