如果有人说“我们来做一套全栈评论系统”,你脑子里可能已经闪过一串噩梦:表结构设计、CRUD、React 状态、无限滚动、防 XSS、顺手再补一波测试。放在从前,这往往等于自愿取消周末。
这篇文章是一次认真的实验记录:能不能把最耗神的实现与兜底交给 AI,人只管架构、体验与业务规则? 不堆术语,只从一线视角聊聊这套让我多次准时下班的工作流,到底是怎么转起来的。
那个“读懂我心思”的结对编程伙伴
1. 长记忆:上下文别再“断片”
以前用 AI,最怕它记性差:你让它改 A,它顺手把 B 拧成麻花;文件一长,就开始胡言乱语。这次在啃 CommentXX.tsx 这种“Hooks + Supabase Realtime + 错误边界”叠在一起的块头时,它反而稳住了——能在一个线程里重构订阅逻辑,同时咬住你已经定好的状态契约。
说白了:不是魔法,是你把业务拆清楚、它就有空间把注意力放在该放的 token 上。复杂组件照样需要人画心智模型,但“记住上周咱俩说过啥”这块,现代模型已经比早年玩具助手靠谱太多。
2. TypeScript:接口它比你还熟
“给个评论数据结构”——它交出来的不只是 id、content、created_at。author_avatar、parent_id(楼中楼)、该 optional 的字段打上 ?,一套常见开源评论 schema 里该有的,它往往自带领域常识。接口定义从体力活降级成:你审稿、拍板、它起草。
3. 渐进式 MVP:看着它一路“打怪升级”
我习惯先跑通最小可用,再叠横切能力。写 route.test.ts 时,先 mock 最简单返回;通了再追加:Sentry、Rate Limit 边界、异常分支。它像高级工程师一样一层层缝合,还尽量不让旧用例红——最后堆到 132 条用例时,我甚至有点感动:这活以前多半会在“先上线再说”里悄悄烂尾。
现代全栈架构的“拼图游戏”
1. SSR 与水合:该懒的地方别客气
Next.js 14 里最让人头大的,莫过于哪里服务端、哪里客户端。这次的做法很朴素:评论列表能纯读就留在 SSR,首屏 HTML 直出;输入框、订阅、乐观更新再打上 use client。用户点开文章,列表先秒现,不必为一坨列表交互下载整包 JS——核心 Web 指标里,LCP 这类东西,是真的会好看一截。
2. Realtime 与乐观更新:别让用户干等
实时评论可以走 Supabase Realtime(底层逻辑复制那一套)。前端侧,AI 帮我把 SWR 乐观更新和 WebSocket 事件揉进同一个 useComments:点发送,列表先“假装成功”;等真实事件回推,再做对齐。本地抢先、远端纠偏——体感快和最终一致可以兼得。
3. 消灭类型断层:从 SQL 到 Props 一条链
最烦的是:库表改了,后端 DTO 忘了,前端拿到 undefined 直接白屏。做法是:迁移 SQL 定稿 → `supabase gen types` → 类型一路捅到组件 props。写 admin-auth.ts 这类后台接口时,类型收窄能在编译期挡掉一批越权写法——想靠瞎改参数混过去?先过编译器这关。
那些没人愿意干的“脏活累活”,AI 全包了
1. 防御性编程:它没有“应该不会有人乱传吧”这种侥幸
生成 comment-validation.ts 时,它会顺手带上长度上限、邮箱形态、以及 XSS 清洗——那种“赶进度先略过”的坑,它反而偏不略。安全与边界检查,最适合交给不知疲倦的副驾驶。
2. 测试金字塔:从 Vitest 到 Playwright
单测、组件测、端到端浏览器测,AI 可以按金字塔往上码。写 CommentSection.test.tsx 时,它记得给 `window.matchMedia`、`ResizeObserver` 做 mock——老前端都知道,这俩曾经在 StackOverflow 上收割过多少夜晚。
3. 性能:别一上来就虚拟列表
无限滚动越来越卡?未必先上重型虚拟列表。`React.memo` 包住 Markdown 重渲染、`useMemo` 做评论树,再配合 Intersection Observer 做分页触发,往往性价比更高——比死盯 scroll 事件,主线程轻松一截,滑动会从“拖泥带水”变成“德芙广告”。
敲黑板:人和 AI 的协作边界到底在哪?
AI 再强,也替代不了这几件事:
- 索引与预算:联合查询它一秒能写,但存储与读写成本是你们公司的账,B-Tree 建在哪、哪张表不值得索引,得架构师拍板。
- RLS 背后的产品规则:“普通用户能不能删昨天别人的评论?”“哪些操作必须管理员?”——这是文档与法务友好度问题,不是语法问题。
- 带人味的体验:默认错误是冷冰冰的
500 Internal Server Error;我会改成:“哎呀,网络开小差了,稍后再试一下~”——共情与语气,仍是本地化智慧。
欢迎来到新范式
跑完这一趟,我眼里的软件工程更像一句话:AI 搭骨架,人灌领域智慧。 伟大之处不在于“写得有多快”,而在于认知负荷搬家——少纠结参数顺序和正则,多留给架构、体验与业务创新。
我们从“代码纺织工”,慢慢变成指挥模型干脏活的技术负责人。去试试吧:把琐碎交给 AI,把创造的乐趣留给自己。
发表评论
分享你的想法和反馈