文章目录起因第一天立规矩第二到第三天写规格画原型第四天骨架搭建第五到第七天核心功能冲刺第八到第十天完善与打磨第十一天安全加固一些数字这套方法为什么有效踩过的坑写在最后避坑指南给准备动手的人从零到上线一个测试运维工程师和 AI 搭档的真实开发故事非全职开发利用空闲时间和周末时间。起因团队需要一个网络监控系统。市面上的方案要么太重Prometheus Grafana AlertManager 全家桶要么太贵SaaS 按量计费要么功能不贴合需求。需求其实很简单能 Ping 几十台服务器看通不通能检测 TCP 端口开没开能检查 HTTP 接口返回正不正常能监控 SSL 证书快到期了提醒一下出问题了钉钉和邮件通知一下每周一自动发一份可用率报告这些需求用传统方式开发一个有经验的全栈工程师大概要 3-4 周。但这次我想试试完全由 AI 辅助开发。最终结果11 天非全职59 次提交一套完整可用的网络监控系统。第一天立规矩很多人用 AI 写代码最大的问题是AI 写着写着就跑偏了。加个功能、改个设计、重构一下……等你回过神来代码已经面目全非。所以在写第一行代码之前我做了一件事写宪法。没错constitution.md项目开发宪法。这份文件定了 7 条不能违背的开发原则第一条简单性原则只实现规格说明中明确要求的功能。不提前抽象未来需求。不引入非必需的依赖。第二条测试先行铁律不可协商所有新功能必须先写一个失败的测试再写实现最后重构。禁止跳过测试直接改代码。第三条明确性原则所有 API 输入输出必须显式定义类型。禁止裸 except。禁止吞异常。还有异步优先、安全默认、前端规范、代码风格……宪法是最高优先级的。AI Agent 在这个项目里工作必须先读宪法然后无条件遵守。试下来效果很好AI 不再自作主张加功能了。但后面我才意识到真正让这套方法稳定下来的不只是这 7 条大原则而是后面不断补进去的细规则。很多规则其实不是一开始就想全了而是被问题逼出来的。比如 HttpOnly Cookie 方案踩坑之后我才明确写下前端不能依赖document.cookie判断登录态时间展示在列表、详情、Dashboard 三处漂移之后我才把所有时间统一走frontend/src/utils/datetime.ts定成硬规则前端测试因为漏了ElConfigProvidermock 把 vitest worker 拖死之后我才真正意识到测试桩必须覆盖运行时真实依赖不是一句形式化要求而是会直接影响进度的工程纪律。也就是说这不是一套写完就不动的制度而是一套边做边被现实校正出来的方法。顺便说一下这个项目没用单一的 AI 工具而是按任务类型组合了好几个写后端代码API 路由、数据库模型、探测引擎主要用 Claude Code GLM-5生成的代码比较稳定代码审查和 Bug 排查用 Codex GPT-5.4推理链条更长能挖到问题的根因前端页面微调用 TRAE Gemini 3.1 Pro Preview改 .vue 文件时能同时看到 template 和 script 的上下文原型设计用 Figma导出 TSX 代码后给前端对照着实现文档整理用 Claude Code Kimi-K2.5800 行的 spec 和 298 个任务的管理文档长上下文是刚需不同模型确实有分工的价值。GLM-5 写业务逻辑稳GPT-5.4 查 Bug 准。关键不是选最好的模型而是把合适的模型放到合适的环节。第二到第三天写规格画原型接下来写需求文档。spec.md写了大约 800 行包括4 种监控类型的详细设计ICMP/TCP/HTTP GET/HTTP POST告警状态机的完整生命周期5 个核心页面的 UI 规格数据库表设计API 端点规划非功能性需求性能、安全、部署然后是 UI 原型。找了一些参考截图让 AI 提取视觉风格深邃科技Deep Tech深藏青/夜空蓝为基调克制对比Restrained Contrast不使用大面积高亮色高信噪比High Signal-to-Noise Ratio摒弃多余修饰硬朗专业Crisp Professional小圆角、细边框然后定义了完整的设计 Tokens色彩体系、字体层级、间距系统、组件规范。最后把 Figma 设计原型导出为 319 个 TSX 文件。不过这里有个坑后面会提到。这个阶段的核心就是把一切想清楚再动手。那时候我其实挺乐观的。规格写清楚了原型也有了任务再拆细一点AI 看起来就能像流水线一样往前推。后面事实证明这个判断只对了一半。第四天骨架搭建开始写代码。但不是直接写业务逻辑先搭骨架。项目配置文件pyproject.toml、package.json、Dockerfile、MakefileFastAPI 入口数据库会话ORM 基类工具函数……这个阶段用 Claude Code GLM-5。每一步都是 TDD先写测试再写实现。比如加密工具先写一个测试test_encrypt_then_decrypt_returns_original跑测试红失败写 AES-256-GCM 实现跑测试绿通过重构如果需要看起来很慢实际上很快。AI 写测试的速度远超人类而且测试本身就是最好的规格文档。第五到第七天核心功能冲刺这几天是最密集的开发期。一天之内完成了7 个数据库模型 数据库迁移14 个 API Schema 定义认证、用户、分组、告警规则、通知通道的完整 CRUD4 种探测引擎ICMP/TCP/HTTP/SSL调度器集成前端 API 模块和基础组件最高产的一天做了 11 次提交。关键在于任务分解。整个项目拆成 298 个原子任务每个任务只改一个文件。AI 按依赖关系自主推进不用我逐条指导。主力工具仍然是 Claude Code GLM-5。比如T094 [P] 创建统一探测结果类型测试 T095 创建探测结果类型文件依赖 T094 T096 [P] 创建 ICMP Probe 测试 T097 创建 ICMP Probe 实现依赖 T095, T096[P]标记的任务可以并行AI 会自动识别依赖关系。到这里为止我还觉得局面基本在掌控里。最难的部分好像已经过去了。第八到第十天完善与打磨功能跑通之后进入打磨阶段。这时候前后端问题开始交叉出现工具也跟着切换排查问题用 Codex GPT-5.4推理链长能挖根因前端微调用 TRAE Gemini 3.1 Pro Preview改 .vue 文件更精准。这段时间解决了很多最后 10%的问题前后端契约漂移——前端允许选择最近 24 小时筛选但后端 API 只接受 1d/7d/30d用户一选就报错。时间格式不一致——列表页显示到秒详情页只到分钟Dashboard 又是另一种格式。探测指标混淆——ICMP 的响应时间用了总执行耗时而不是真正的 RTT。级联删除遗漏——删分组时组内任务的历史探测数据没清干净。这些问题看着都不大但每一个都会影响用户体验。更麻烦的是没有测试覆盖的话修一个 Bug 很容易再引入新的。真正让人疲惫的不是某个单独的大坑而是它们几乎都跨层。前端一个筛选项后端一个枚举测试里一个 mock页面上一个时间格式看起来都只是小问题串起来就变成半天起步。我也是从这个阶段开始意识到复杂工程里最难的不是把功能写出来而是把这些跨层契约一条条收紧。这几天还有一次压测结果不太好看。任务列表 P95 很高高并发下还出现了database is locked。我第一反应其实挺沮丧的因为前面一直觉得 SQLite 这个选择是稳的。后来反过来看这轮压测反而很值钱。它把边界打清楚了SQLite 不是不能用而是只能在我们说清楚的单实例、有限负载场景里用一旦查询写法放松或者并发超出预期问题就会立刻暴露。第十一天安全加固原本我以为核心功能做完以后最后一天更多是收尾。真正进了安全审查才发现根本不是修几个点那么简单而是要把底层基线重新校准一遍。问题不只是 JWT 从 localStorage 改成 HttpOnly Cookie。安全测试还把另外几个缺口一起打了出来登录接口没有限流API 响应缺少安全头FastAPI 默认 422 校验错误和项目自己的错误结构也不一致。也就是从这里开始我对 AI 的一个认知更清楚了它可以很快补实现但安全基线仍然得靠人来定。哪些规则要全局生效哪些只能条件输出哪些默认行为不能接受这些都不能让模型自己猜。最后一天做安全。JWT Token 从 localStorage 改为 HttpOnly Cookie防止 XSS 窃取。加了安全响应头中间件X-Content-Type-Options、X-Frame-Options、HSTS。实现了 Token 黑名单。加了 RBAC 角色权限。修了 SSL 证书验证的漏洞。同时设计了 CI/CD 流水线Gitee Go Docker Compose从代码提交到自动部署打通。最后的文档整理工作交给 Claude Code Kimi-K2.5 处理。一些数字指标数值开发周期11 天提交次数59 次代码行数173,000 行开发任务298 个文档793 个 Markdown测试文件449 个后端 208 前端 241这套方法为什么有效回过头来看我觉得有几个原因。宪法 指南划出了 AI 的行为边界。光跟 AI 说帮我写个监控系统它会给你一个四不像。但如果告诉它必须用 SQLite不能用 PostgreSQL必须先写测试敏感字段必须加密密码必须 bcrypt每个函数只做一件事——AI 就会在这些约束下给出靠谱的代码。298 个任务拆得足够细每个只改一个文件AI 可以像流水线一样持续推进。测试是兜底的。没有测试的 AI 编程就像没系安全绳攀岩每次重构、每次修复都是赌博。793 个 Markdown 不只是给人看的它们是 AI Agent 的长期记忆。每次新会话开始AI 会读这些文档来了解项目全貌。踩过的坑当然也不是一帆风顺。坑 1AI 真的会过度聪明。有一次它看到 N1 查询第一反应不是优化查询而是想引入缓存层。单看代码这个建议甚至不算离谱但它和项目边界是冲突的。我们明确说了单实例、轻量、不要 Redis。那一刻我意识到AI 最大的风险不是写不出来而是写出一个局部看上去很合理、整体却不该出现的方案。后来我就把这类经验不断写回规则里尽量不给它留发挥过头的空间。坑 2前后端契约漂移比我预想得频繁得多。最开始我以为这种问题就是修个值映射十分钟搞定。实际症状往往很烦页面明明给了选项用户一点击就 400接口看起来通了图表却显示不对详情页和列表页读的是同一个字段展示出来却不是一回事。难查的地方在于单看前端像前端的问题单看后端像后端的问题只有把类型、接口入参、服务层允许值和页面常量一起摊开才知道错位在哪。后来我才真正接受这类问题不能靠默契只能靠契约测试和更窄的类型定义。坑 3HttpOnly Cookie 认证链路让我把运行时真实世界这件事看得更重了。最初以为登录接口改成设置 Cookie 就够了剩下前端照旧读 token 就行。结果一联调就出问题了后端受保护接口还只认 Authorization 头前端测试甚至用document.cookie去模拟 HttpOnly Cookie。这个坑之所以别扭是因为每一层单看都有点像对的串起来却完全不成立。最后只能把整个链路一起改后端支持从 Cookie 取 token前端不再读取 Cookie而是用显式会话状态判断登录态再补后端和前端两侧的回归测试。这件事后来也变成了一条硬规则认证载体必须前后一致不能混搭。坑 4测试环境和运行时不是一回事。那次前端测试里漏了ElConfigProvidermock直接把 vitest worker 拖成了僵尸进程内存一直涨。问题最烦的地方在于它会制造一种错觉你以为是在修一个组件问题实际上是在修测试环境契约。后来不仅补了 mock还加了afterEach清理重置模块缓存和状态。我也是从这个坑开始更警惕测试全绿这句话因为它不自动等于页面真能跑。坑 5Figma 原型导出的代码没法直接用。最开始我的想法很简单原型都能导出 TSX 了前端照着落就行。结果一打开才发现完全不是这么回事。Figma 默认导出的是 React Tailwind Radix UI而我们的前端是 Vue 3 TypeScript Element Plus。React hooks 不能直接翻Tailwind 类名和 Element Plus 组件 API 对不上Radix 的行为模式也不是 Vue 这套。难受的点不在于它不能用而在于它看起来像能用。最后只能把 319 个 TSX 文件当视觉参照重新翻译成 Vue 组件。这事花了整整一天也顺手打掉了我一个不太成熟的想法设计稿导出代码不等于你真的拿到了可复用实现。写在最后这次经历让我重新理解了AI 原生开发。程序员的角色当然在变。你需要想清楚要做什么需求定好规矩宪法拆好任务审好代码。执行工作确实可以更多交给 AI。但做到后面我越来越确定有三件事 AI 不能替我做。第一它不能替我定义边界。单实例就是单实例v1 不做的东西就是不做不能因为某个方案听起来更高级就临时加进去。第二它不能替我判断跨文件、跨层之间的一致性。前端、后端、测试、运行时任何一层单看都可能没问题串起来才知道哪里是错的。第三它不能替我确认一个看起来合理的方案是否真的符合当前项目约束。这个判断说到底还是工程经验。所以 AI 更像加速器不是自动驾驶。它能把速度提得很高但方向盘还得我自己握着。避坑指南给准备动手的人几个实战层面的建议方法论之外的东西。先跑起来别搞完美主义。不要一上来就想设计一套完美的架构。先用最简单的方案解决问题跑通了再慢慢优化。我们的宪法和任务体系就是边做边完善的不是一开始就写好的。组合拳才有效。真实世界的开发问题很复杂单靠一种工具搞不定。Commands Skills Hooks MCP组合起来用。排查 Bug 时 GPT-5.4 做推理改 UI 时 TRAE 做微调文档整理用 Kimi-K2.5各自干各自擅长的事。隔离噪声保持上下文干净。测试跑完几百行日志直接扔进主对话AI 的上下文就脏了后面回答质量会下降。高噪声任务用子代理隔离只留结果。我们压测时就是这么干的只把 P95/P99 数据返回主对话。系统比 AI 更可靠。凡是必须做的事情安全检查、格式化、测试覆盖用系统级 Hooks 保障。AI 会忘代码不会。我们的 CI/CD 里这些检查都是强制执行的。自动化测试要分清层次。测试工具不是点一下自动生成的魔法而是一套方法论技能层定义怎么测脚本层写具体用例Python Playwright辅助脚本管环境。三层各司其职。如果想试这种方法建议从小项目开始。写好宪法拆好任务让 AI 跑起来。它确实比很多人想象中靠谱。但如果只让我选一个这 11 天里最值钱的产物我现在不会选代码量也不会选提交次数。更值钱的是我们把一套怎么和 AI 一起做复杂工程的方法硬生生从问题里磨出来了。哪些边界必须先定哪些坑必须写成规则哪些问题必须靠测试和文档兜底这套东西比单个项目更耐用。
11 天,1 个人 + AI,搭了一套网络监控系统
文章目录起因第一天立规矩第二到第三天写规格画原型第四天骨架搭建第五到第七天核心功能冲刺第八到第十天完善与打磨第十一天安全加固一些数字这套方法为什么有效踩过的坑写在最后避坑指南给准备动手的人从零到上线一个测试运维工程师和 AI 搭档的真实开发故事非全职开发利用空闲时间和周末时间。起因团队需要一个网络监控系统。市面上的方案要么太重Prometheus Grafana AlertManager 全家桶要么太贵SaaS 按量计费要么功能不贴合需求。需求其实很简单能 Ping 几十台服务器看通不通能检测 TCP 端口开没开能检查 HTTP 接口返回正不正常能监控 SSL 证书快到期了提醒一下出问题了钉钉和邮件通知一下每周一自动发一份可用率报告这些需求用传统方式开发一个有经验的全栈工程师大概要 3-4 周。但这次我想试试完全由 AI 辅助开发。最终结果11 天非全职59 次提交一套完整可用的网络监控系统。第一天立规矩很多人用 AI 写代码最大的问题是AI 写着写着就跑偏了。加个功能、改个设计、重构一下……等你回过神来代码已经面目全非。所以在写第一行代码之前我做了一件事写宪法。没错constitution.md项目开发宪法。这份文件定了 7 条不能违背的开发原则第一条简单性原则只实现规格说明中明确要求的功能。不提前抽象未来需求。不引入非必需的依赖。第二条测试先行铁律不可协商所有新功能必须先写一个失败的测试再写实现最后重构。禁止跳过测试直接改代码。第三条明确性原则所有 API 输入输出必须显式定义类型。禁止裸 except。禁止吞异常。还有异步优先、安全默认、前端规范、代码风格……宪法是最高优先级的。AI Agent 在这个项目里工作必须先读宪法然后无条件遵守。试下来效果很好AI 不再自作主张加功能了。但后面我才意识到真正让这套方法稳定下来的不只是这 7 条大原则而是后面不断补进去的细规则。很多规则其实不是一开始就想全了而是被问题逼出来的。比如 HttpOnly Cookie 方案踩坑之后我才明确写下前端不能依赖document.cookie判断登录态时间展示在列表、详情、Dashboard 三处漂移之后我才把所有时间统一走frontend/src/utils/datetime.ts定成硬规则前端测试因为漏了ElConfigProvidermock 把 vitest worker 拖死之后我才真正意识到测试桩必须覆盖运行时真实依赖不是一句形式化要求而是会直接影响进度的工程纪律。也就是说这不是一套写完就不动的制度而是一套边做边被现实校正出来的方法。顺便说一下这个项目没用单一的 AI 工具而是按任务类型组合了好几个写后端代码API 路由、数据库模型、探测引擎主要用 Claude Code GLM-5生成的代码比较稳定代码审查和 Bug 排查用 Codex GPT-5.4推理链条更长能挖到问题的根因前端页面微调用 TRAE Gemini 3.1 Pro Preview改 .vue 文件时能同时看到 template 和 script 的上下文原型设计用 Figma导出 TSX 代码后给前端对照着实现文档整理用 Claude Code Kimi-K2.5800 行的 spec 和 298 个任务的管理文档长上下文是刚需不同模型确实有分工的价值。GLM-5 写业务逻辑稳GPT-5.4 查 Bug 准。关键不是选最好的模型而是把合适的模型放到合适的环节。第二到第三天写规格画原型接下来写需求文档。spec.md写了大约 800 行包括4 种监控类型的详细设计ICMP/TCP/HTTP GET/HTTP POST告警状态机的完整生命周期5 个核心页面的 UI 规格数据库表设计API 端点规划非功能性需求性能、安全、部署然后是 UI 原型。找了一些参考截图让 AI 提取视觉风格深邃科技Deep Tech深藏青/夜空蓝为基调克制对比Restrained Contrast不使用大面积高亮色高信噪比High Signal-to-Noise Ratio摒弃多余修饰硬朗专业Crisp Professional小圆角、细边框然后定义了完整的设计 Tokens色彩体系、字体层级、间距系统、组件规范。最后把 Figma 设计原型导出为 319 个 TSX 文件。不过这里有个坑后面会提到。这个阶段的核心就是把一切想清楚再动手。那时候我其实挺乐观的。规格写清楚了原型也有了任务再拆细一点AI 看起来就能像流水线一样往前推。后面事实证明这个判断只对了一半。第四天骨架搭建开始写代码。但不是直接写业务逻辑先搭骨架。项目配置文件pyproject.toml、package.json、Dockerfile、MakefileFastAPI 入口数据库会话ORM 基类工具函数……这个阶段用 Claude Code GLM-5。每一步都是 TDD先写测试再写实现。比如加密工具先写一个测试test_encrypt_then_decrypt_returns_original跑测试红失败写 AES-256-GCM 实现跑测试绿通过重构如果需要看起来很慢实际上很快。AI 写测试的速度远超人类而且测试本身就是最好的规格文档。第五到第七天核心功能冲刺这几天是最密集的开发期。一天之内完成了7 个数据库模型 数据库迁移14 个 API Schema 定义认证、用户、分组、告警规则、通知通道的完整 CRUD4 种探测引擎ICMP/TCP/HTTP/SSL调度器集成前端 API 模块和基础组件最高产的一天做了 11 次提交。关键在于任务分解。整个项目拆成 298 个原子任务每个任务只改一个文件。AI 按依赖关系自主推进不用我逐条指导。主力工具仍然是 Claude Code GLM-5。比如T094 [P] 创建统一探测结果类型测试 T095 创建探测结果类型文件依赖 T094 T096 [P] 创建 ICMP Probe 测试 T097 创建 ICMP Probe 实现依赖 T095, T096[P]标记的任务可以并行AI 会自动识别依赖关系。到这里为止我还觉得局面基本在掌控里。最难的部分好像已经过去了。第八到第十天完善与打磨功能跑通之后进入打磨阶段。这时候前后端问题开始交叉出现工具也跟着切换排查问题用 Codex GPT-5.4推理链长能挖根因前端微调用 TRAE Gemini 3.1 Pro Preview改 .vue 文件更精准。这段时间解决了很多最后 10%的问题前后端契约漂移——前端允许选择最近 24 小时筛选但后端 API 只接受 1d/7d/30d用户一选就报错。时间格式不一致——列表页显示到秒详情页只到分钟Dashboard 又是另一种格式。探测指标混淆——ICMP 的响应时间用了总执行耗时而不是真正的 RTT。级联删除遗漏——删分组时组内任务的历史探测数据没清干净。这些问题看着都不大但每一个都会影响用户体验。更麻烦的是没有测试覆盖的话修一个 Bug 很容易再引入新的。真正让人疲惫的不是某个单独的大坑而是它们几乎都跨层。前端一个筛选项后端一个枚举测试里一个 mock页面上一个时间格式看起来都只是小问题串起来就变成半天起步。我也是从这个阶段开始意识到复杂工程里最难的不是把功能写出来而是把这些跨层契约一条条收紧。这几天还有一次压测结果不太好看。任务列表 P95 很高高并发下还出现了database is locked。我第一反应其实挺沮丧的因为前面一直觉得 SQLite 这个选择是稳的。后来反过来看这轮压测反而很值钱。它把边界打清楚了SQLite 不是不能用而是只能在我们说清楚的单实例、有限负载场景里用一旦查询写法放松或者并发超出预期问题就会立刻暴露。第十一天安全加固原本我以为核心功能做完以后最后一天更多是收尾。真正进了安全审查才发现根本不是修几个点那么简单而是要把底层基线重新校准一遍。问题不只是 JWT 从 localStorage 改成 HttpOnly Cookie。安全测试还把另外几个缺口一起打了出来登录接口没有限流API 响应缺少安全头FastAPI 默认 422 校验错误和项目自己的错误结构也不一致。也就是从这里开始我对 AI 的一个认知更清楚了它可以很快补实现但安全基线仍然得靠人来定。哪些规则要全局生效哪些只能条件输出哪些默认行为不能接受这些都不能让模型自己猜。最后一天做安全。JWT Token 从 localStorage 改为 HttpOnly Cookie防止 XSS 窃取。加了安全响应头中间件X-Content-Type-Options、X-Frame-Options、HSTS。实现了 Token 黑名单。加了 RBAC 角色权限。修了 SSL 证书验证的漏洞。同时设计了 CI/CD 流水线Gitee Go Docker Compose从代码提交到自动部署打通。最后的文档整理工作交给 Claude Code Kimi-K2.5 处理。一些数字指标数值开发周期11 天提交次数59 次代码行数173,000 行开发任务298 个文档793 个 Markdown测试文件449 个后端 208 前端 241这套方法为什么有效回过头来看我觉得有几个原因。宪法 指南划出了 AI 的行为边界。光跟 AI 说帮我写个监控系统它会给你一个四不像。但如果告诉它必须用 SQLite不能用 PostgreSQL必须先写测试敏感字段必须加密密码必须 bcrypt每个函数只做一件事——AI 就会在这些约束下给出靠谱的代码。298 个任务拆得足够细每个只改一个文件AI 可以像流水线一样持续推进。测试是兜底的。没有测试的 AI 编程就像没系安全绳攀岩每次重构、每次修复都是赌博。793 个 Markdown 不只是给人看的它们是 AI Agent 的长期记忆。每次新会话开始AI 会读这些文档来了解项目全貌。踩过的坑当然也不是一帆风顺。坑 1AI 真的会过度聪明。有一次它看到 N1 查询第一反应不是优化查询而是想引入缓存层。单看代码这个建议甚至不算离谱但它和项目边界是冲突的。我们明确说了单实例、轻量、不要 Redis。那一刻我意识到AI 最大的风险不是写不出来而是写出一个局部看上去很合理、整体却不该出现的方案。后来我就把这类经验不断写回规则里尽量不给它留发挥过头的空间。坑 2前后端契约漂移比我预想得频繁得多。最开始我以为这种问题就是修个值映射十分钟搞定。实际症状往往很烦页面明明给了选项用户一点击就 400接口看起来通了图表却显示不对详情页和列表页读的是同一个字段展示出来却不是一回事。难查的地方在于单看前端像前端的问题单看后端像后端的问题只有把类型、接口入参、服务层允许值和页面常量一起摊开才知道错位在哪。后来我才真正接受这类问题不能靠默契只能靠契约测试和更窄的类型定义。坑 3HttpOnly Cookie 认证链路让我把运行时真实世界这件事看得更重了。最初以为登录接口改成设置 Cookie 就够了剩下前端照旧读 token 就行。结果一联调就出问题了后端受保护接口还只认 Authorization 头前端测试甚至用document.cookie去模拟 HttpOnly Cookie。这个坑之所以别扭是因为每一层单看都有点像对的串起来却完全不成立。最后只能把整个链路一起改后端支持从 Cookie 取 token前端不再读取 Cookie而是用显式会话状态判断登录态再补后端和前端两侧的回归测试。这件事后来也变成了一条硬规则认证载体必须前后一致不能混搭。坑 4测试环境和运行时不是一回事。那次前端测试里漏了ElConfigProvidermock直接把 vitest worker 拖成了僵尸进程内存一直涨。问题最烦的地方在于它会制造一种错觉你以为是在修一个组件问题实际上是在修测试环境契约。后来不仅补了 mock还加了afterEach清理重置模块缓存和状态。我也是从这个坑开始更警惕测试全绿这句话因为它不自动等于页面真能跑。坑 5Figma 原型导出的代码没法直接用。最开始我的想法很简单原型都能导出 TSX 了前端照着落就行。结果一打开才发现完全不是这么回事。Figma 默认导出的是 React Tailwind Radix UI而我们的前端是 Vue 3 TypeScript Element Plus。React hooks 不能直接翻Tailwind 类名和 Element Plus 组件 API 对不上Radix 的行为模式也不是 Vue 这套。难受的点不在于它不能用而在于它看起来像能用。最后只能把 319 个 TSX 文件当视觉参照重新翻译成 Vue 组件。这事花了整整一天也顺手打掉了我一个不太成熟的想法设计稿导出代码不等于你真的拿到了可复用实现。写在最后这次经历让我重新理解了AI 原生开发。程序员的角色当然在变。你需要想清楚要做什么需求定好规矩宪法拆好任务审好代码。执行工作确实可以更多交给 AI。但做到后面我越来越确定有三件事 AI 不能替我做。第一它不能替我定义边界。单实例就是单实例v1 不做的东西就是不做不能因为某个方案听起来更高级就临时加进去。第二它不能替我判断跨文件、跨层之间的一致性。前端、后端、测试、运行时任何一层单看都可能没问题串起来才知道哪里是错的。第三它不能替我确认一个看起来合理的方案是否真的符合当前项目约束。这个判断说到底还是工程经验。所以 AI 更像加速器不是自动驾驶。它能把速度提得很高但方向盘还得我自己握着。避坑指南给准备动手的人几个实战层面的建议方法论之外的东西。先跑起来别搞完美主义。不要一上来就想设计一套完美的架构。先用最简单的方案解决问题跑通了再慢慢优化。我们的宪法和任务体系就是边做边完善的不是一开始就写好的。组合拳才有效。真实世界的开发问题很复杂单靠一种工具搞不定。Commands Skills Hooks MCP组合起来用。排查 Bug 时 GPT-5.4 做推理改 UI 时 TRAE 做微调文档整理用 Kimi-K2.5各自干各自擅长的事。隔离噪声保持上下文干净。测试跑完几百行日志直接扔进主对话AI 的上下文就脏了后面回答质量会下降。高噪声任务用子代理隔离只留结果。我们压测时就是这么干的只把 P95/P99 数据返回主对话。系统比 AI 更可靠。凡是必须做的事情安全检查、格式化、测试覆盖用系统级 Hooks 保障。AI 会忘代码不会。我们的 CI/CD 里这些检查都是强制执行的。自动化测试要分清层次。测试工具不是点一下自动生成的魔法而是一套方法论技能层定义怎么测脚本层写具体用例Python Playwright辅助脚本管环境。三层各司其职。如果想试这种方法建议从小项目开始。写好宪法拆好任务让 AI 跑起来。它确实比很多人想象中靠谱。但如果只让我选一个这 11 天里最值钱的产物我现在不会选代码量也不会选提交次数。更值钱的是我们把一套怎么和 AI 一起做复杂工程的方法硬生生从问题里磨出来了。哪些边界必须先定哪些坑必须写成规则哪些问题必须靠测试和文档兜底这套东西比单个项目更耐用。