ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI编程实战:用Cursor和Agent工作流打造高品质Web应用

AI编程实战:用Cursor和Agent工作流打造高品质Web应用 1. 从“能用”到“高品质”AI 写 Web 应用的真实差距在哪里先聊点实在的。过去这一年多AI 编程工具的进化速度夸张点说比过去十年的 IDE 插件还快。Cursor、Copilot、通义灵码、Codeium 这些工具现在已经不是“能补全代码”那么简单了Cline、OpenHands 这类 Agent 形态的工具已经能自己改文件、跑命令、读报错、循环修 bug。所以“用 AI 打造 Web 应用”这件事真正的问题从来不是“AI 能不能写”而是“AI 写出来的东西能不能用、好不好用、敢不敢上生产”。我见过太多人用 AI 搭了个 Demo跑通了然后就觉得“行了”。结果一上真实环境——数据量一上来慢并发一高崩业务规则一复杂逻辑开始乱协同开发一多人改互相覆盖。这其实是 AI 编程最典型的落差Demo 级别的质量和生产级别的质量之间隔着一整条工程化体系。那“高品质 Web 应用”到底指什么我自己的定义是三层第一层功能完备且逻辑正确。不只是页面能打开而是异常分支、边界条件、状态流转都要覆盖到。第二层工程质量达标。代码结构清晰、可维护、可测试、可扩展别人接手的时候不用对着屏幕骂人。第三层用户体验和稳定性过关。响应快、交互顺、部署流程可复现、监控和日志能帮你快速定位问题。这三层每一层AI 都能帮上忙但每一层也都需要人来兜底。这篇文章不聊那种“一句话生成整个网站”的噱头我只讲真正能落地的工作流怎么用 AI 高质量地完成一个 Web 应用从需求到上线的全过程以及哪些环节 AI 做得特别好、哪些环节它还会把你带沟里。先泼一盆冷水AI 写代码的代码量产出确实惊人但它的“平均代码质量”也就相当于一个刚入行、干劲十足但缺乏全局观的初级工程师。它能让你从 0 到 1 的速度翻几倍但如果你没有一套约束它的工程框架它同样能让你从 1 到 0 的翻车速度翻几倍。2. 我的 AI 驱动 Web 开发工作流五阶段全流程拆解用 AI 做 Web 应用不能像用搜索引擎一样“搜一段抄一段”。我跑了大半年之后稳定的工作流基本固定在五个阶段需求与架构先行、环境与骨架一键搭建、编码阶段人机协同、自动化验证兜底、部署与迭代闭环。每个阶段 AI 的参与方式完全不同。2.1 需求与架构先行让 AI 当“架构师助理”而不是“代码生成器”大多数人说“让 AI 帮我做个网站”上来就是“帮我写个登录页面”。这是最大的误区。你应该先让 AI 帮你把需求理清楚、把技术方案定下来而不是直接生成代码。我会先给 AI 一段相对完整的业务描述然后让它帮我做几件事拆解功能模块、梳理用户角色和权限、列出核心数据实体及关系、对比适合的技术栈方案。这里有个实际例子比如你想做一个“团队任务协作工具”你直接说“帮我写个任务管理网站”它生成的代码大概率是通用的增删改查真正用起来会发现缺了一堆东西——没有成员邀请机制、没有任务状态流转、没有操作日志、没有通知系统。但如果你先让它帮你做需求拆解它会帮你理出这些模块你再根据优先级决定先做哪些。技术选型这个环节AI 的“知识面广”优势特别明显。你问它“Flask、FastAPI、Django、Spring Boot 怎么选”它不是简单给你一句话建议而是能列出各自的生态、团队熟悉度、部署复杂度、扩展性对比甚至结合你的部署环境和团队规模给倾向性建议。我自己的经验是把 AI 当方向盘的辅助而不是导航的替代。它给你方案选项和权衡分析最终往哪个方向打方向盘需要你自己判断。2.2 环境与骨架一键搭建这是 AI 最强的场景说实话如果你已经确定了技术选型比如“Django 5 PostgreSQL Redis”那环境搭建和项目骨架生成这件事AI 做得几乎完美。打一个“创建一个 Django 5 项目使用 PostgreSQL 作为数据库集成 Django REST Framework用户认证用 JWT项目结构按 apps/、config/、utils/ 分目录”这样的提示词它能一口气给你完整的目录结构、配置文件、依赖清单、初始化脚本比你手动敲快十倍。这里有一个选型层面的经验。如果你做的是企业内部系统、管理后台、CMS 这类以 CRUD 为主的项目Django 或 Spring Boot 这种“全家桶”框架效率极高因为用户认证、后台管理、ORM、表单校验都帮你内置了。如果你做的是高并发、前后端分离的 API 服务FastAPI 或 Spring WebFlux 这种轻量异步框架更适合。AI 对这些框架的 API 都非常熟悉你不用记那么多语法细节重点放在业务设计和架构分层上。骨架生成之后有一步很多人会漏掉让 AI 生成配套的 Makefile 或 Shell 脚本。一键启动开发环境、一键跑测试、一键打包部署这些脚本让整个开发过程可复现不然过两周你自己都忘了当初是怎么把项目跑起来的。2.3 编码阶段的人机协同上下文管理和提示词策略是核心进入实际编码阶段最简单的用法是“选中代码让 AI 改”——处理小 bug、优化局部逻辑、补充注释。稍微高级一点的用法是利用 Cursor 这类工具的Codebase功能让 AI 扫描整个项目之后再回答问题它就能基于你的现有代码风格和数据模型来生成新模块而不是生搬硬套通用模板。再高级一层是 Agent 模式。Cursor 的 Agent 模式、Cline 这类全自主工具已经能完成“新增一个‘项目详情页’包含项目基本信息、成员列表、最近任务动态参照现有列表页的样式和组件规范”这样的任务链。它自己会去读路由文件、看组件文件、理解项目现有模式然后改多个文件并联动检查。这个能力对效率的提升是质的飞跃但同时也引入了风险——它会自作主张改一些你不想让它改的东西。所以 Agent 模式下我强烈建议第一步先让它“制定修改计划”列出会改哪些文件、影响哪些功能你审核之后再执行。上下文管理是我反复强调的一点。AI 写代码的质量直接取决于它“看到”的上下文是否足够。如果你让它“写一个支付回调接口”它不知道你的支付流程、不知道你的订单状态定义、不知道你的异常处理规范写出来的一定是通用骨架。正确做法是把相关代码片段、数据表结构、接口定义文档都扔给它它才能写出贴合业务实际的代码。我把这个过程叫“喂上下文”这也是人和 AI 协作中最重要的一个动作。2.4 自动化验证兜底测不过的代码绝不能合入这个环节没有太多花哨的就是严格执行所有代码合入之前必须过自动化测试。用 AI 最爽的一刻就是你不需要自己手写所有测试用例让它为每个核心函数生成单元测试并为关键业务路径生成集成测试。但是这里有一个大坑AI 生成测试用例有一个倾向——“测试跟着实现走”。就是说实现代码是 A 逻辑它生成的测试就测这个 A 逻辑哪怕这个逻辑本身是错的。如果这段代码是 AI 刚生成的这个循环就会变成“AI 生成的 bugAI 生成测试测试通过bug 上线”。破解方法就一个测试用例必须有独立于代码实现之外的业务预期。你要么自己定义输入输出要么参考需求文档而不是代码来推导测试数据。另外不要太迷信 AI 帮你“自动修复测试失败”。它改代码让它自己的测试通过很容易因为它只是迎合那个测试。真正的问题往往在测试本身没覆盖到的场景。我的底线是核心业务路径必须有手写断言的测试AI 生成的测试只能作为补充覆盖。2.5 部署与迭代闭环人工审查 观察监控最后一步是部署。现在 Docker 镜像、CI/CD 流程这块AI 也能生成得很好。你只需要描述——“使用 GitHub ActionsNode.js 20 环境生成 Docker 镜像并推送到阿里云 ACR然后 SSH 到服务器上拉取镜像并重启容器”它能给你一整套能直接用的 workflow 文件。但部署之后马上要补的一段是观察和监控。日志怎么收集、异常怎么上报、关键指标错误率、P99 延迟怎么监控。这其实也是 AI 生成代码质量的试金石——一个真正“高品质”的 Web 应用不可能没有错误处理、日志和监控。AI 天然倾向于写“快乐路径”的代码你需要用系统提示词明确要求“所有对外部服务的调用必须有超时、重试和优雅降级处理所有捕获的异常必须包含上下文日志和错误码所有写入操作必须考虑幂等性。”这些要求不加它默认是不做的。3. 从“热词热度”判断为什么“AI Coding”和“AI Agent”是当前最值得关注的方向你如果刷技术社区会发现“AI Coding”“AI Agent”“AI 编程提示词”“Cursor AI 编程”这些词的热度一直居高不下。这里我结合自己的使用经验帮大家把这些概念拆开揉碎。先说AI Coding。这个词从“用 AI 辅助编程”拓展到“AI 编程”本身是这两年才发生的核心变化是从“补全助手”进化到“结对程序员”。传统补全助手干的是“猜到你要写什么”现在的 AI Coding 工具干的是“你告诉我目标我写给你看”。这两个阶段的差别就是“搜索补全”和“需求驱动”的差别。前者让你打字变快后者让你的思路从一个“人盯着代码一行行写”变成“人描述意图、AI 输出方案、人审校决策”。再说AI Agent。这可能是被误解最深的词。太多人把“能调用工具的 AI”就叫做 Agent但真正的 Agent 有一个更关键的词自主规划。给一个目标它能自己拆解任务、决定执行的顺序、根据中间结果调整计划。在代码场景里你给它一个任务“集成支付功能”它不只是生成代码片段而是会读你的项目结构、找到路由配置、看你数据库模型、生成迁移文件、更新前端调用逻辑然后跑测试做自我验证。Cline、Cursor 的 Agent 模式、OpenHands 这些工具已经能实现这整套流程。但我得说一个实测结论Agent 模式不是万能的。它在两类场景下表现极好——一类是“新增功能型”任务比如“增加一个导出 CSV 的接口”一类是“重构迁移型”任务比如“把项目里所有fetch调用替换为axios并添加上下文超时”。它在两类场景下表现很糟糕——一类是“需要业务判断”的任务比如“订单取消后怎么处理已发放的优惠券”这种业务规则多分支的场景它容易漏掉状态组合另一类是“跨库跨服务”的大范围改动比如“改造用户中心为微服务”这种改动涉及的数据流和一致性逻辑Agent 根本hold不住全局。所以我的建议是把 Agent 当作“高水平的执行者”用别把它当“产品经理 架构师 程序员”的合体。目标要清晰边界要明确改动范围要可控。4. 实战项目拆解在半小时内做一个带用户体系的笔记应用光说不练没用我带你把“用 AI 打造高品质 Web 应用”这句话落到一个完整项目上一个带用户认证、笔记 CRUD、标签分类、全文搜索的笔记应用。技术栈选型后端 FastAPI SQLite开发环境/ PostgreSQL生产环境前端用 Jinja2 服务端渲染 少量原生 JS认证用 JWT。为什么这么选因为这是一个典型的“我要在最短时间内看到一个能完整跑起来的项目”的场景FastAPI 的自动文档和依赖注入让 AI 生成代码的确定性高很多Jinja2 服务端渲染避免了前后端分离带来的“一个接口一个前端文件”的复杂度爆炸AI 在这种模式下更容易理解数据流。4.1 第一步需求细化对话——把模糊想法变成明确任务列表首先给 AI 发这一段我想做一个笔记应用核心功能包括用户注册登录、笔记增删改查、支持 Markdown 编辑、笔记可以打标签、按标签筛选、按内容搜索。前端用服务端渲染不要前后端分离。请帮我拆解详细的功能需求列表并标出每个功能的优先级P0/P1/P2。AI 给你的输出大概率是P0用户注册、登录、注销JWT 认证中间件P0笔记创建、编辑、删除Markdown 渲染P0笔记列表分页展示P1标签创建、笔记打标签、按标签筛选P1全文搜索标题 内容P2分享链接、笔记导出 Markdown拿到这个列表之后先不要急着让它生成全部代码。你要做的是把 P0 的范围确认清楚特别是“Markdown 编辑”这个需求是纯前端 Markdown 编辑器还是服务端渲染时把 Markdown 转成 HTMLAI 可能会默认一个方案你需要明确它的行为。这个确认动作本质上是你在当产品经理AI 在当架构师助理一起把需求边界钉死。4.2 环境准备与依赖清单让 AI 生成 requirements 和项目结构请创建项目骨架使用 FastAPI包含以下目录app/main.py, app/models.py, app/schemas.py, app/auth.py, app/routers/notes.py, app/routers/users.py, app/templates/, app/static/css/。 依赖包括 fastapi, uvicorn, sqlalchemy, passlib, python-jose, python-multipart, markdown, jinja2。 数据库用 SQLite开发方便。 请同时生成 requirements.txt 和 README.md包含启动步骤。这一阶段 AI 生成的骨架放在本地是可以直接uvicorn app.main:app --reload跑起来的。这里 AI 的优势是快它不会漏掉python-multipart如果你要处理表单提交这种新手常踩的坑。4.3 核心编码让 AI 写注册、登录、CRUD 的完整链路骨架起来之后我建议一个一个功能来不要一次性要求“把所有功能写完”那样它写出来的代码关联性会变差。比如先要“注册接口 登录接口 JWT 生成 当前用户接口”再要“笔记 CRUD 路由所有路由都要经过认证依赖”。FastAPI 的依赖注入让“认证依赖”变得很好写也让 AI 生成的代码质量更稳定。你看看它生成的类似代码from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from app import models, schemas from app.auth import get_current_user from app.database import get_db router APIRouter(prefix/api/notes, tags[notes]) router.post(, response_modelschemas.NoteOut) def create_note( note: schemas.NoteCreate, db: Session Depends(get_db), current_user: models.User Depends(get_current_user), ): new_note models.Note( titlenote.title, contentnote.content, owner_idcurrent_user.id, ) db.add(new_note) db.commit() db.refresh(new_note) return new_note这里我要强调一个细节也是 AI 生成代码的一个规律FastAPI 的Depends机制对它来说非常“友好”因为依赖注入让每个函数都变成了“参数明确、行为可预期”的小单元AI 对这种模式的代码生成准确率特别高。反过来如果是那种“全局状态 隐式调用链”的框架代码比如某些 PHP 老项目AI 生成的质量就不稳定。前端的服务端渲染页面你让它用 Jinja2 模板生成登录页、注册页、笔记列表页和编辑页它给出的代码虽然不算“惊艳”但绝对能跑。你后续可以自己补样式、加交互或者让它改造成 Vue 单页这是后话。4.4 测试生成与手动验证AI 补不回来的部分基础的 CRUD 做完之后第一件事是生成测试。给 AI 的指令要具体为上述 FastAPI 应用编写 pytest 测试覆盖 1. 未登录用户访问 /api/notes/ 应返回 401 2. 用户注册后能登录登录后能创建笔记 3. 用户 A 不能修改用户 B 的笔记 4. 搜索接口能根据标题关键词正确返回笔记前三条它写得都很快“用户 A 不能修改用户 B 的笔记”这种权限边界测试它也会按照你的要求写出来。但第四条“搜索接口”如果你还没实现它就卡住了——这时候你要么让它“先为你实现搜索功能再写测试”要么让它“先写测试但标记为 skip”。这里就是 AI 编程的一个经典陷阱AI 从来不告诉你哪些功能还没做它只会顺着你的提示写“看起来完整”的代码。如果你代码导入了不存在的方法它不会报错它会在测试里用一个不存在的函数名然后测试一跑一堆失败。这时候你才意识到它把没实现的功能当成已实现的了。解决的办法是靠你自己对需求清单的掌控力。你在第一步做了详细的 P0/P1 拆解那现在你就知道“搜索”是 P1这个功能还没做测试先跳过是对的。跑完 AI 生成的测试我建议做一次完全手动验证注册两个用户互相访问笔记看权限控制是否生效试试空标题能不能提交超长内容会不会内存炸掉。这些“边界用例”AI 生成的测试一般覆盖不到手动点两分钟的收益远大于写半小时代码。4.5 打磨与优化AI“发现”不了问题但能帮你解决问题代码跑通之后你再回头看它生成的代码可能发现问题没有分页笔记多了列表会卡没有 CSRF 防护表单提交有安全风险JWT 过期时间设成了 30 天不是好的实践密码哈希虽然用了 passlib但默认算法可能需要升级。这一轮“代码审查”我强烈建议自己先看一遍核心代码把你能发现的问题标注出来然后再问 AI 怎么解决。比如你问当前笔记列表没有分页如果用户有 500 条笔记一次性加载会导致页面卡顿。请用 SQLAlchemy 的 paginate 或 limit/offset 实现分页并返回总页数和当前页数同时更新前端模板增加上一页/下一页按钮。AI 会很顺畅地把后端分页和前端翻页都实现好。这个交互模式就是“AI 补全方案”的正确用法问题由人来发现方案由 AI 快速补齐。反过来说如果你只是问“帮我把项目优化一下”它给的优化建议八成是“增加类型注解”“提取公共函数”这种正确的废话因为没有具体的性能瓶颈和业务场景它也没有魔法。最后如果你想让项目更完善可以继续推进把 SQLite 换成 PostgreSQL、加 Docker 容器化、加 Redis 缓存笔记计数、加操作日志审计、用 Nginx 做反向代理和 TLS 终止。每一步交给 AI 去改你负责确认改动范围和回归测试。整个迭代循环跑下来这个半小时的项目会变成真正可上线的应用而你需要花的心智主要在“决策”而不是“编码”。5. 工具选型实测Cursor、Cline、GitHub Copilot 在 Web 全栈开发中的表现差异很多人在留言里问同一个问题这些 AI 编程工具到底哪个强我的回答是没有绝对的最强只有最适合某个场景的更强。下面是我的实测记录基于我自己在真实项目中的体感不代表“标准答案”但应该比跑一下 Demo 的评测更接近真实情况。工具核心形式我眼中最强的场景明显的短板推荐指数满分5星GitHub Copilot补全 聊天面板IDE 内行级补全配合快速修改局部代码多文件大改能力弱缺少“读整个项目”的模式★★★★Cursor独立 IDE内置 Chat Composer Agent读整个代码库后修改多个文件最适合 Web 全栈项目初期有个学习曲线重度场景对电脑配置有一定要求★★★★★ClineVS Code 插件Agent 自主执行自动化执行多步骤任务比如“改完路由再改前端再跑测试”需要多次确认操作频繁时会有延迟感★★★★通义灵码IDE 插件中文体验好国内开发者中文交互、背靠国内云服务生态多文件级重构能力弱于 Cursor★★★☆Codeium / WindsurfIDE 插件 / 编辑器免费额度大适合轻量级编码辅助Agent 能力和生态不如 Cursor 完整★★★☆这里要展开说几个细节。第一Cursor 的“原生 IDE”优势是它的整体体验——对话、代码、终端、Diff 审查、Git 集成都在一个窗口里完成省了“切窗口”的摩擦。它的Codebase模式和Web模式还能拉取文档、GitHub Issues 作为上下文这让它在“依据现有代码实现新需求”的场景里准确率高得惊人。第二Agent 类工具你要懂得“设置围墙”。目前 Cline 这类工具在 VS Code 里运行良好的原因之一是它把任务分成步骤并逐条确认。你允许它执行某一步它才会动手。我建议在项目初期把“允许命令执行”关掉只看它的计划确认计划不会乱动你的项目结构之后再放开让它跑。这个习惯帮我避免过至少三次“它自己把整个代码结构重写了”的事故。第三关于联网搜索能力。Cursor 的Web和 Copilot 的网页搜索能让 AI 获取最新 API 文档。这对 Web 开发者来说太重要了——所有框架半年升级一次 API 的情况太常见了离线训练的模型跟最新文档之间的差距能造成大量低级错误。但反过来联网搜索也会引入“答非所问”的情况——模型抓了一堆网页却找不到直接答案。我给一个折中建议核心业务代码尽量不依赖联网遇到“某个库最新版本 API 怎么用”这类问题再显式开启联网搜索。6. 我在三十多次“AI 翻车”之后总结出的避坑清单这一节提前说清楚下面这三十多次翻车里没有一次是“AI 完全写不了代码”那种彻底罢工都是“代码看着对、跑起来炸”或者“管中窥豹、破坏了别处功能”的暗坑。我把它们归类成六大类每类给一个代表案例。6.1 上下文丢失导致的“方案漂移”这是最频繁的坑。AI 在长对话中会逐渐忽略你早期的关键约束。最典型的一次我要求“项目必须兼容 Python 3.9”开头几轮它还守着到了第五轮它开始用 Python 3.10 才有的match语法和|类型并集。你说它“不会 Python”它不是它就是丢了上下文。应对方式把不可妥协的约束写进项目根目录的AGENTS.md或CLAUDE.md文件里Cursor 和 Cline 会自动读取这个文件。然后每次开启新对话时你就不需要反复强调。6.2 局部最优整体崩塌让 AI 优化一个函数它会非常专注地优化局部但完全不考虑调用方的变化。有一次我让它“优化用户查询接口的数据库查询减少 N1 问题”它给User模型加了selectinload这个改动本身没错但它的查询方式返回的字段跟原有 API 的序列化器不匹配了前端拿到的数据突然多了一层嵌套。这类问题靠代码审查容易被漏掉因为“看起来确实更优了”。应对方式让 AI 改任何跨文件影响的代码之前先问它“这个改动会影响哪些文件和哪些调用方”它能列出影响清单你再判断是否执行。6.3 幻觉依赖AI 会引用不存在的第三方库、不存在的 API 方法、不存在的配置项。印象最深的一次是它推荐了一个叫fastapi-pagination-plus的包我当时没多想就装了结果 pip 找不到。你问它“这个包是不是真的存在”它居然还在解释“这个包是社区的”最后是我手动去 PyPI 搜索才确认根本没有。AI 的“自信编造”在冷门技术栈上尤其严重。应对方式命令它“如果你不确定某个第三方库或 API 是否存在必须明确说明‘请去官网验证’不要假定它存在”。每次跑测试的时候检查 import 是否有误。6.4 安全默认值缺失AI 生成代码默认不校验输入、不过滤 XSS、不配置 CORS、不做速率限制、不给 JWT 设置合理的过期时间。这不是它不知道而是它默认你只需要“功能跑通”。我有一次让它生成一个文件上传接口它直接用原始文件名存储也不校验 Content-Type也不限制文件大小。当时不会有什么问题但后来想想都后怕。应对方式在系统提示词里加一条固定指令——“所有生成代码必须包含输入校验、错误处理、安全边界考虑。如果省略了安全配置必须在代码注释中明确标注‘此处需要补充安全配置’。”6.5 测试覆盖的虚假安全感AI 生成的测试覆盖率看着很高但有效性很低。它倾向测“正常路径”漏掉“错误路径”和“边界路径”。更隐蔽的是它的测试通常基于“实现细节”而非“业务需求”这导致代码重构之后测试粘连死、跑不过你被迫花大量时间修测试而不是重构代码。应对方式将“测试有效性”和“测试数量”分开来看。重点审查每个核心业务规则的测试而不是总覆盖率。手动构造一些“它想不到”的场景去测试代码比如传None、超长字符串、并发请求。6.6 过度动工有时候你只是希望它“加一个字段”它能帮你把整个数据库模型、API 序列化器、前端表单全改了甚至把你不相关的代码风格也顺手换掉了。有一次我只是让它在用户模型里加一个avatar_url字段它顺手把一个已经废弃的旧模型删了。这个风险在 Agent 模式下最大。应对方式给 Agent 模式设置一个“不可修改文件列表”比如 migration 文件、关键配置、旧模块目录并且明确“本次任务只允许修改以下文件”。每次让 Agent 执行改动之前必须生成一份“改动 diff”供你审查。7. 从“个人效率工具”到“生产级流程”AI 开发的三条验收红线项目做完了怎么判断它够不够格称为“高品质 Web 应用”我自己有三条红线全部满足才算真正结束。7.1 知识覆盖红线代码之外的非功能需求高质量 Web 应用不只是代码。文档、部署手册、环境变量说明、监控告警配置这些 AI 也能帮你写但需要你主动提。你让它“写一个 README”它给的是项目简介和启动步骤你让它“写一个部署手册包含环境变量清单、Docker 构建步骤、备份与恢复流程”它给的东西就具备生产可用性了。这块不补齐项目交付之后维护成本会直线上升。7.2 体验验证红线用真实场景过一遍全流程我会把 AI 生成的 Web 应用当做一个真实产品来验收。注册一个新用户走一遍注册 → 登录 → 创建笔记 → 编辑 → 删除 → 注销全链路测试过程中所有输入框都输入一些超长、空值、特殊字符看它怎么处理。如果它在某个环节出现 500 页面那就说明异常处理不合格。用 AI 最典型的短板——它生成的路由能处理你“预期中”的正常请求但面对“预期外的异常请求”它通常没有兜底。这轮手动测试能帮你快速暴露问题再把暴露的问题丢给 AI 修复。7.3 可维护性红线想象三个月后自己接手这个项目最后问自己一个问题如果我离职了三个月后回来看这个项目我能快速上手吗这个标准非常主观但它可以暴露很多问题——没有类型注解的函数没有注释的复杂逻辑没有任何日志的异步任务没有 Schema 迁移记录的数据库改动。每个人对“高质量”的定义可以不同但“我的团队能接手”这个标准是所有人的共同底线。如果 AI 生成的代码做不到这一点那你就要在交付之前利用 AI 补充这些工程化细节。8. 三个长期有效的“经验之谈”收尾写了这么多最后我想分享三个我真正沉淀下来的体会不算总结算“掏心窝子的话”。第一个体会是用 AI 开发 Web 应用最大的能力瓶颈不是 AI而是你那颗“大概能跑就行”的心。AI 会顺着你的要求降低质量标准你如果放松了对它的约束它产出的代码质量一定是“能用但不是很好用”。你提出多具体的要求它就能产出多高质量的代码。高品质是要你去“要求”出来的而不是靠 AI 自觉。第二个体会是AI 不是替代品是杠杆。它放大的是你的判断力和工程素养——你懂架构它帮你高效实现你不懂架构它帮你把错误架构快速实现完。所以真正拉开差距的不是谁更会用工具而是谁更懂业务、更懂设计、更懂取舍。这一点在一段时间内都不会变。第三个体会也是我反复验证过的AI 写代码的体验会越来越像带一个“很聪明但很偏科”的实习生。它十分钟能赶上你俩小时的产出但它不知道边界在哪里。你要给它划跑道、定规则、验收成果。你越早接受自己的角色是“管理者、决策者、审查者”而不是“编码打字员”你的效率增长就越快。这个方向后面可探索的空间还很大——比如让 AI 自动接入代码评审、自动做性能回归测试、自动分析用户行为日志并提改进建议。但我的建议是先把我上面说的这套基础工作流跑熟把 AI 当真正的工程伙伴而不是玩具来用等那时候再看你大概率已经能独立写出“真正高品质”的 Web 应用了。
返回列表