$kernelink route --hydrate --safe

页面加载 /
跳到正文
auth://account/session

登录工作区

使用 Emlog 账户继续访问你的内容与互动记录。

忘记密码?

打开 Emlog 原生登录页

2417.md
workspace / posts
~/posts/2417.md 阅读中

AI写代码总翻车?五个实战技巧让你从被坑到真香

AI写代码总翻车?五个实战技巧让你从被坑到真香

先说个真事儿

上个月一个做电商后端的朋友跟我吐槽:他让AI帮他写一个订单超时自动取消的定时任务,AI啪啪啪给了一段代码,逻辑看着挺对,跑了两天——把三个月前的已完成订单也给取消了。

他当时脸色比服务器宕机还难看。

这不是个例。你身边大概率也有这种事:AI生成的代码编译能过、单测能跑,一合到主分支就炸。或者你问它一个接口怎么写,它给你一段完美代码,但用的库你项目里根本没有。

大家对AI编程有两个典型误区:一是觉得"AI写的就是对的",二是觉得"AI啥都能替我干"。 真相是——AI是个快但不靠谱的实习生,你得当它的Tech Lead。

今天这篇,不讲概念,讲你明天上班就能用的东西。


一、三个可以直接照搬的实战技巧

1.1 把大需求拆成"一句话一个任务"喂给AI

别一上来就说"帮我写一个用户系统"。AI会给你一个大而全的东西,你改起来比自己写还累。

正确做法:拆到原子级。

比如你要做用户注册,别说"写注册模块"。你这么问:

"用Spring Boot + MyBatis,写一个手机号验证码注册接口,要求:1. 验证码存Redis过期时间5分钟;2. 手机号做格式校验;3. 返回统一响应格式Result。"

操作步骤:

  1. 先自己想清楚这个小任务的输入、输出、边界条件
  2. 把技术栈、存储方式、异常处理要求一次性写进提示词
  3. 拿到代码后,只review这一个小模块,别贪多

我见过一个做SaaS的团队,后端负责人把一个复杂的权限系统拆成了14个独立prompt,每个prompt不超过3行需求描述,最终AI生成的代码可维护性比之前高了一大截。

【金句:AI不怕你要求细,怕你要求大。你喂得越碎,它吐得越准。】

1.2 用"角色+约束+示例"三件套锁死输出格式

很多人用AI写代码,输出格式乱七八糟——有时给你Java,有时给你Python,注释风格也飘忽不定。

模板直接抄:

"你是一个有5年经验的Java后端开发,代码风格遵循阿里Java规范。所有方法必须有Javadoc,异常用自定义BusinessException。参考以下代码风格:[贴一段你项目里的真实代码]"

关键是那个"参考代码"。你贴一段自己项目里的真实代码片段,AI会模仿你的命名习惯、包结构、错误处理方式。这一步很多人跳过了,结果AI写出来的东西跟你项目像两个世界。

1.3 让AI先写伪代码/思路,再生成实现

这招特别适合复杂逻辑。你直接让AI写实现,它容易跳步骤或者漏分支。

做法:分两轮对话。

第一轮:"帮我梳理一下订单状态机的流转逻辑,用伪代码列出每个状态的触发条件和下一步状态。"

第二轮:"基于上面的伪代码,用Java实现,用枚举管理状态,加单元测试。"

先有骨架再填肉,出错概率直降。有个做物流系统的开发者跟我说,他用这招处理运费计算逻辑,AI第一轮给的伪代码就发现了一个他自己没想到的边界case——重量为0时的处理。

【金句:先让AI想清楚再动手,比让它边想边写靠谱十倍。】


二、五个最容易踩的坑

坑1:直接复制粘贴不review

现象: AI给的代码你看着能跑就合了。
危害: 安全漏洞、性能隐患、逻辑错误全埋进去了。
规避: 每段AI代码必须过你自己的眼,至少看三遍——逻辑、边界、安全性。

坑2:让AI改旧代码,结果越改越乱

现象: 你把一坨老代码丢给AI说"帮我优化",它给你重写了一半,新旧代码风格冲突。
危害: 牵一发动全身,测试覆盖不到的地方悄悄出bug。
规避: 只让AI改单个函数或单个文件。大范围重构,你自己来,AI只做辅助提取。

⚠️ 注意:AI对你项目的上下文理解是有限的,它不知道你三个月前为什么那么写。别指望它"理解全局"。

坑3:用AI生成的代码不写测试

现象: AI说"已包含单元测试",你信了。其实它的测试只覆盖了happy path。
危害: 线上遇到异常输入直接崩。
规避: AI生成的测试你必须自己补边界case,尤其是空值、超长字符串、并发场景。

坑4:一个prompt里塞太多上下文

现象: 你把半个项目的代码贴进去让AI改,它"理解"了但实际上只是在做模式匹配。
危害: 它给你的修改跟其他模块产生隐性冲突。
规避: 每次只给它需要改的那个文件+直接依赖的接口定义,控制在500行以内。

坑5:依赖AI记住之前的对话

现象: 你在同一个对话里反复修改,到第10轮AI开始"忘事",前后矛盾。
危害: 你以为它记住了之前的约定,其实早跑偏了。
规避: 重要的约束条件每次都重新写进新prompt,别省这几行字。

【金句:AI的记忆力约等于金鱼,重要的话你得每次都重复说。】


三、真实案例复盘:用AI重构一个老旧的报表导出功能

背景: 一个做企业服务的团队,有个Excel导出功能跑了三年了,用的是老式POI写法,大数据量就OOM。Tech Lead决定用AI帮忙重构。

第一步,输入prompt:

"用EasyExcel重写报表导出功能。要求:1. 支持50万行数据分批写入;2. 模板复用现有的report_template.xlsx;3. 导出时做权限校验,当前用户只能看自己部门数据;4. 异步导出,前端轮询进度。"

中间踩的坑:

  • AI第一版给了同步导出,内存一样爆。追问后改成了分批写入+临时文件。
  • AI用的权限校验逻辑是基于Role的,但项目里实际是基于DataScope注解。我手动纠正后它才改对。
  • 前端轮询接口AI写的是每秒一次,我改成了前端传token、后端按需推送。

最终成果:
代码量从原来的800行降到350行,导出50万数据从OOM变成稳定40秒内完成。但——前端轮询那部分是我自己手写的,AI给的版本有个token过期没处理的bug。

【金句:AI能帮你干掉80%的重复活,但剩下20%的坑得你自己蹲。】


四、落地行动清单

说了这么多,你明天就能动手试的三件事:

  1. 挑一个你项目里最无聊的CRUD接口,用"角色+约束+示例"模板让AI重写一遍,对比你自己写的,看差在哪。
  2. 找一段AI之前给你写过但你没细看的代码,今天认真review一遍,大概率能找出至少一个隐患。
  3. 下次用AI改代码时,先让它输出伪代码/思路,你确认逻辑没问题再让它写实现。

最后说句实在话:AI编程工具现在确实好用,但它离"替你干活"还差得远。它更像一个速度快但需要你盯着的搭档——你放松警惕的那一刻,就是线上出事故的那一刻。

别神化它,也别怕用它。用对了,真能省你一半时间。

觉得有用的话收藏起来慢慢练,评论区聊聊你用AI写代码踩过最狠的坑是什么。

收藏 0
手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

comments.cmd 可写入
guest@kernelink:~/posts/2417$ comment --compose
identity.env 访客信息
插入 访客会话 Text + UBB · UTF-8 · LF 0 字符