游乐游手机版
首页/AI教程/文章详情

两周内带三实习生开发八万行代码项目的心得

时间:2026-05-31 17:08
先说个现实情况:这个项目的代码总量达到了84917行。这个任务的起源已经不重要了,总之某天下班前被老板叫住,说有一个重大项目需要接手。有同事用 vibe coding(AI辅助编程)快速搭建了一个Outlook插件的演示原型,大老板看后非常兴奋,决定将其产品化并推广为标准方案。老板要求用AI技术评估

先说个现实情况:这个项目的代码总量达到了84917行。

这个任务的起源已经不重要了,总之某天下班前被老板叫住,说有一个重大项目需要接手。有同事用 vibe coding(AI辅助编程)快速搭建了一个Outlook插件的演示原型,大老板看后非常兴奋,决定将其产品化并推广为标准方案。老板要求用AI技术评估可行性,还配备了三位新来的实习生,并限时一周内拿出可供客户演示的版本。

老板的指示就是最高优先级,只能迎难而上。

先看看最终实现了哪些核心功能:

  • 多端统一的架构设计(支持 Word 插件、PPT 插件、Outlook 插件、Web 端管理后台)
  • 集成主流的 6 大供应商以及模型并发负载均衡
  • 13 种语言的国际化支持
  • 企业级的客户许可管理流程
  • 无缝的平台集成和 AAD 单点登录
  • 支持横向扩容的全套 k8s、docker compose 部署方案
  • 单副本(1核500MB)支持 100 qps 的流式响应

目前该产品已部署给三个客户,服务规模约4000人。

听起来是不是很唬人?那实际开发过程中遇到了哪些问题呢?

给猴子配枪:实习生与AI协作的隐患

借着这个机会,想回应一下那些认为“随便找实习生搭配AI就能替代资深程序员”的老板们。先说实习生带来的挑战。

实习生同学最大的问题不是技术能力不足,而是缺乏对项目风险的判断力。这也不能全怪他们——作为实习生,能把功能做出来且没有报错已经算合格了。我们客观分析问题。

大家都知道AI在编程时通常会提供多种方案,但实际开发中只能选择一种执行。AI默认给出的方案往往不是最优解,需要经验丰富的开发者根据自己的知识判断并引导AI进行调整,才能得到最符合业务需求的方案。

但实习生无法做到这一点。他们以“完成任务”为目标,像开着一辆搭载天顶星引擎的顶级跑车却蒙着眼睛。成熟的程序员能精准操控,快速稳定到达目的地;而实习生只关心是否到达,完全不理会是否剐蹭护栏、是否干扰其他车辆、是否压上了人行道——要么没发现,要么发现了也不懂其中的风险。

这种情况非常危险。

这种“猴子配枪”式的开发模式主要体现在两类问题上:

1、野蛮生长的DEMO阶段

项目初期,在完整的前后端架构尚未搭建完成时,每个插件都由实习生采用vibe coding方式从零开发,技术栈五花八门。有的后端用fastapi加前端千行HTML,有的纯前端react且密钥硬编码在代码里。架构搭建完成后,花了将近半周时间才将所有插件功能迁移整合。而前端的视觉风格和样式逻辑至今仍未完全统一。这不能全怪实习生,只能说vibe coding的快速原型方式存在天然缺陷。

2、对项目约束的随意修改

对于有经验的开发者来说,项目中有很多不可触碰的红线。当模型生成代码试图越界时,开发者能主动纠正(这通常意味着模型开始出错)。但实习生缺乏这种警惕性。以下是在代码评审中发现的典型问题:

  • 将 .claude 目录加入 .gitignore,导致新的 skill 文件无法提交
  • 损坏 .gitignore 文件,导致其他人将敏感文件误提交到 git 仓库
  • 修改公共 manifest 文件,指向自己的私有服务器,导致其他人使用时直接报错
  • 临时关闭 eslint 校验后忘记重新开启
  • 每次本地启动开发都需要重新申请开发许可(正常情况下只需申请一次即可永久生效,原因至今未查明)
  • ...

说实话,这些问题本身不算严重,但排查起来相当困难,因为开发人员往往下意识会排除这些“低级错误”的可能性。好在几位实习生后来不断进步,现在已经很少再犯这类离奇的错误了。

无法自动化测试 = 模型幻觉的温床

除了实习生的问题,纯AI编程项目对自动化测试的依赖缺失也带来了诸多麻烦。

本项目恰好是Office插件开发。做过Office插件的同学都知道,在Web端测试O365插件需要一套相对复杂的操作流程,Word和Outlook的测试方式还不相同。桌面端测试更加繁琐。加上对Office环境的强依赖,导致根本无法使用成熟的Web应用测试方案(如Playwright)进行自动化测试。

更准确地说,目前几乎没有针对Office插件的有效自动化测试方案。这导致开发过程中实习生需要手动截图并向模型描述异常情况,无法利用TDD(测试驱动开发)的自动纠错循环,模型的开发效率大幅下降。同时没有回归测试,频繁出现“修好A功能却搞坏B功能”的情况。实际上我们花了将近一半时间在手动测试上——依赖QA团队人工回归,再用模型通过vibe coding修补问题。而通过Web访问的管理后台几乎没有出现过bug。

前端 - 样式统一始终是个难题

从产品化角度出发,三个Office插件端的UI风格必须保持一致。最初的计划是:

  • 让一名有前端经验的实习生使用pencil工具生成三款插件的设计稿
  • 与交付团队保持密切沟通,确定最终设计方案
  • 让AI根据设计稿生成一套统一的UI组件库和agent skill
  • 三位实习生分别用AI重构各自负责的插件前端

然而实际执行严重超期。现在复盘来看,每个环节都遇到了预料之外的问题:

审美的主观性导致决策拖延

项目群里有好几位“老板”,每个人都提出了自己的设计想法。但没有明确的最终决策人,每次沟通的结果都是“你用AI再完善一下”。仅设计稿阶段就消耗了大量时间。

AI生成的代码与设计稿严重不符

pencil生成的设计稿虽然包含了很多CSS样式,但项目选用的是antd组件库。AI生成的组件默认样式与设计稿样式产生了大量冲突,而AI难以有效定位和排查问题。导致生成的组件几乎无法直接使用。这是整个项目延误风险最高的环节,最终不得不强行介入,暂停实习生的组件开发工作,由产品组的前端同事协助迁移部分组件才勉强完成。

demo阶段遗留的大量脏代码严重拖慢了重构进度

纯HTML加几千行CSS、React原生组件加LESS样式、antd组件加CSS modules样式……每个插件端的前端方案完全不同,导致旧代码几乎无法复用。最终只能全部重写,又花了将近一天时间才将到处是bug的功能修复到可用状态。

后端 - 问题最少,但隐患最大

由于后端的架构设计和核心模块实现由我亲自负责,这一部分反而问题最少。包括不同插件后端的迁移、后续几次中等规模的重写(国际化方案统一、横向扩容改造等)都快速完成。

现在回头看,后端相比百花齐放的前端已经总结出了最佳实践:采用三层架构加单元测试,基本能保证AI开发的效率和质量。加上prisma一把梭解决了数据库层面需求,vercel的ai sdk一把梭解决了模型相关需求。

然而,对后端的担忧反而是最大的。prisma使用起来非常简洁快速,容易让实习生对数据库开发的严肃性认识不足——迁移文件、数据库事务等,稍不注意就可能导致数据误删或系统死锁。目前除了严格要求agent在开发数据库相关内容时必须特别注意之外,还没有找到更好的规避方法。

写在最后

这篇文章并非反对AI编程。相反,尽管过程中遇到了各种问题,最终的实际效果依然令人惊艳。事后复盘发现,这类规模的功能如果按照传统开发模式,至少需要两名后端加三名前端开发一个月才能进入提测阶段。但若是要用实习生来降低开发成本,那么团队建设就必须非常慎重。

另外,AI时代对项目前期设计的要求提升了好几个档次,这对架构者的能力提出了更高的挑战。如果前期让AI生成了一大堆劣质代码,后期就需要花费数倍精力偿还技术债务。如果这篇文章只能传递一句话,那就是:

永远不要期望能将一个vibe coding产生的demo直接完善成商业产品。验证可行性后就果断丢弃,然后在一个设计完善、架构优秀的全新基础上重新开发。

来源:https://juejin.cn/post/7613274190879719459
上一篇智能办公系统选型关键因素与未来趋势探索 下一篇在线AI一键转换矢量图网页版详细教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw浏览器自动化控制 Playwright MCP与Mcporter方案实现完整流程步骤详解教程
AI教程 · 2026-06-01

OpenClaw浏览器自动化控制 Playwright MCP与Mcporter方案实现完整流程步骤详解教程

概述 这篇文章记录了把Playwright MCP集成到OpenClaw中,并用Mcporter作为中间桥梁的完整测试过程。内容包括问题诊断、架构理解,以及正确的使用方法——说白了,就是带大家把整个链路彻底捋清楚。 先交代一下背景:为啥折腾这个方案?说实话,就是熬夜后闲得慌,突发奇想想在家里搞搞Op

AI写业务代码后必须坚持的过程控制
AI教程 · 2026-06-01

AI写业务代码后必须坚持的过程控制

前言AI 已经能极其高效地帮我们搞定业务代码了。这个结论经过反复验证,基本上没什么悬念。但问题也随之而来:越是这样,越容易陷入失控状态——想到哪写到哪,总盼着 AI 一口气把活儿全干了。业务代码和 demo 最大的不同在于,业务从来不是孤立的。它牵扯着一连串的业务流程、历史包袱、数据状态、权限边界、

我用两个高效技巧解决AI开发文档记录难题
AI教程 · 2026-06-01

我用两个高效技巧解决AI开发文档记录难题

我用 AI 写了三个月代码,结果连自己写的东西都看不懂了 一个开发者的普遍困境 从去年开始,大量开发者涌入 Claude Code 进行 AI 辅助开发。效率提升令人振奋——过去需要两天的功能,现在一个下午就能搞定。但很快,一个尴尬的问题浮出水面:三个月前自己写的代码,如今竟然看不懂了。 问题不在于

AI改坏真实App的常见问题与解决技巧
AI教程 · 2026-06-01

AI改坏真实App的常见问题与解决技巧

探索AI辅助移动端开发的过程中,我属于较早深入实践并持续积累经验的那一批。过去几个月里,我几乎每天都会在真实的iOS与Flutter项目中与AI协作调整代码:涵盖SDK封装、旧代码迁移、Demo补全、使用文档优化、多语言适配、界面检查、验证执行以及工作交接整理。因此,本文无意纠缠“AI究竟能否编写代

领导要求部署OpenClaw?先看这篇指南
AI教程 · 2026-06-01

领导要求部署OpenClaw?先看这篇指南

前几天,领导丢过来一句话:你去看一下 OpenClaw,评估一下能不能在公司内部部署。紧接着又问了一个很典型的问题:这东西到底算什么?是一种云服务吗? 仔细一想,这个问题的答案并不简单。OpenClaw 本身不等于“云平台”,但一旦真正用起来,云环境通常会深度参与。它更像一层编排和运行框架,负责把袋