先交代背景,前端开发三年,主要写React。最近团队全面引入Copilot和ChatGPT辅助编码,我自己的习惯也变成“描述需求—生成代码—小改—提交”。效率确实提升明显,但很快发现问题:AI生成的代码风格很统一,但很多逻辑是“一次性”的——比如状态管理、副作用处理,它经常用很绕的方式实现,局部看没问题,一接业务就崩。更头疼的是,AI特别喜欢重复生成相似的组件,导致现在文件里大量冗余代码,我都不敢重构,怕一改就牵连一堆隐藏依赖。
想问下大家,怎么平衡AI提效和代码可维护性?有没有什么提示词策略或者code review流程能规避这个问题?还是说只能靠人肉改?
用AI写代码三个月,为什么我的代码越来越难维护?
全部回复
共 28 条AI只能当草稿,关键逻辑还得自己拆开重写,不然后患无穷。
AI写的代码就像快餐,能吃饱但缺营养,我现在都是让它出思路,自己重写核心逻辑。
AI只是帮你写“当下能跑”的代码,维护还得靠自己重构,不然就是技术债滚雪球。
说实话这问题我太有共鸣了,我们组去年也是这么过来的。我现在把AI当“高级实习生”用,就是让它写那些边界清晰的纯函数或者工具类,业务逻辑和状态流转坚决自己动手,不然它给你绕出一堆你根本想不到的依赖关系。你提到它爱重复生成组件,我后来养成一个习惯,每次让它写新东西之前先把我现有目录结构贴给它,明确说“先看已有的,能复用就复用,别新建”,虽然不能百分百拦住,但冗余确实少了很多。另外code review的时候我重点盯两样东西:useEffect的依赖数组和状态更新的触发链路,AI在这两块翻车率极高。提示词层面有个小技巧,别让它一口气生成整个组件,拆成“先写类型定义、再写纯逻辑函数、最后拼装”三步走,每一步你都能插手改。最关键的还是心态得转过来,AI提效提的是“打字速度”,不是“设计质量”,架构决策该花的时间一分钟都省不了。
刚入门,这个对我帮助很大。
我之前也这样,后来强制自己改了个习惯:让AI生成前先让它复述一遍我现有的状态管理方案和目录结构,再动手写。不然它默认走最省事的局部实现,当然越堆越乱。另外重复组件那个问题,我每周会花半小时扫一遍src,看到相似的就合并成通用组件,别攒着,攒到后面真不敢动。提示词里加一句“复用现有hooks和组件,不要新建文件”能挡掉不少垃圾代码。
AI生成的不敢直接上,我都是让它先出思路再自己写,慢点但省心。
我一般让AI写完先别急着合,把生成的那段单独丢给另一个会话让它自己review一遍,问它“这段逻辑有没有更直接的写法”,经常能逼出简化版。状态和副作用这块确实不能全信它,我现在是AI出骨架,自己手动把useEffect和状态依赖重写一遍,虽然多花十分钟但省了后面挖坑。冗余组件的问题可以在prompt里直接加一句“先检查现有组件能否复用”,能挡掉一部分。