1. 一个前端开发的转型拐点到来了吗
过去两年,我陆续面试了五十多个前端候选人,发现一个很有意思的现象:2023年大家还在问"你会不会用ChatGPT写代码",2024年开始问"你怎么组织AI帮你干活",到了2025年,已经有人直接把"AI Native全栈产品工程师"写在简历标题上了。
这个词乍一听有点唬人,但拆开看就三个部分:前端基本功、全栈能力、AI Native的工作方式。说白了,就是从"只负责页面和交互"进化到"能独立把一个产品从零带到上线,而且整个过程中AI深度参与每一个环节"。
我知道很多人听到"全栈"就头大,觉得又要学后端又要学运维,时间根本不够。但AI时代的全栈和传统意义上的全栈完全是两回事。传统全栈要求你精通Java或Go,熟悉MySQL调优,能自己搭K8s集群;AI时代的全栈更看重你"知不知道这个系统应该长什么样"和"能不能把AI当成一个高效的执行团队来管理"。
我自己的转型路径是:写了七八年前端,做过组件库、搞过微前端、优化过性能,然后从2023年底开始系统性学习Node.js后端,2024年开始重度使用Claude Code、Cursor这些AI编程工具,到现在形成了自己的一套AI Native全栈工作流。
这套工作流的核心是三件套:Claude Code负责写代码,OpenSpec负责把需求变成AI能理解的规格说明,Superpowers负责给AI注入一系列经过验证的skills。用这套组合,我一个人从零开发并上线了三个完整的SaaS项目和两个企业内部工具,涉及支付、多租户、Webhook、定时任务、邮件系统等一整套全栈能力。
这篇文章我就把这套组合拳的完整姿势拆给你看,包括环境搭建、规格驱动的开发流程、实际项目中的工作流演示,以及我在真实项目中踩过的坑。
2. 从"写页面"到"写系统",能力模型到底变了什么
2.1 前端工程师的存量优势
很多人一说转型就想着"我要把后端全套学一遍",这是最大的误区。前端工程师手里有一堆AI暂时没法完全替代的存量优势,这些才是你转型的底气。
第一是产品直觉。你天天跟UI图、交互稿打交道,知道一个按钮放哪里转化率更高,知道加载状态怎么设计用户体验更好,知道一个表单要拆几步才不让用户流失。这种对"产品长什么样"的感知力,是纯后端工程师最缺的东西。AI能帮你写代码,但AI不会告诉你这个产品该做成什么样,这需要人来定。
第二是调试能力。很多人觉得写bug烦,但实际上调试是AI时代最值钱的技能之一。当AI生成了一段代码但运行报错时,你能不能从报错信息推断出问题出在哪个模块,能不能快速定位是类型问题、异步问题还是状态管理问题——这就是前端的看家本领。浏览器DevTools、Network面板、React DevTools这些调试工具,在处理AI生成的前端代码时照样好使。
第三是工程化思维。前端是工程化走得最快的领域。模块化、组件化、自动化测试、CI/CD、代码规范、性能监控,这套东西你在前端玩得转,迁移到后端其实只是换一批工具而已。
2.2 需要补齐的三块拼图
存量优势保留住,接下来需要刻意补齐以下三块能力:
后端基础与数据建模。你不需要成为后端专家,但必须知道RESTful API怎么设计才合理,数据库表怎么建才能支撑业务,用户认证和权限控制的基本原理是什么。我自己的学习路径是:先跟着一个完整的全栈教程把Node.js + Express + PostgreSQL跑通,然后自己动手设计两三个项目的数据库表结构,逐渐就能理解"数据模型决定业务边界"这件事了。
部署与运维的最小知识集。别一上来就学K8s、Docker Swarm那些重家伙,先搞懂怎么用一台云服务器把应用跑起来。我用的是很朴素的方案:Node.js应用直接部署在有公网IP的VPS上,用PM2做进程管理,Nginx做反向代理,配好HTTPS证书,再用GitHub Actions做自动化部署。这套东西加起来一两天就能学会,但能让你拥有"把产品真正发布上线"的完整能力。
AI工具的使用方法论。这不是指"会打开Claude.ai聊天"这种程度,而是指你知不知道怎么给AI下发一个复杂任务、怎么拆解任务边界、怎么审核AI生成的代码、怎么在AI卡住的时候给它正确的引导。这一块没有系统教程,完全靠大量实战积累经验,也是我今天最想展开讲的部分。
2.3 为什么选TypeScript全栈
在技术栈选择上,我强烈建议前端转型的人从TypeScript全栈切入,也就是用一套语言搞定前后端。这既符合"最小学习成本"原则,又能让你把全部精力聚焦在AI Native工作流的掌握上,而不是被语言切换分心。
我现在的技术栈是:前端React或者Next.js,后端Node.js + Hono框架,数据库PostgreSQL + Prisma ORM,认证用Auth.js,部署上云。选Hono没选Express,是因为Hono对TypeScript的支持更好,类型推导非常舒服,而且能同时跑在Node和边缘运行时上,后面做AI Agent相关的服务会方便很多。
这套组合的好处是:因为前后端都是TypeScript,类型定义可以共享。比如我在前端定义一个CreateOrderInput类型,后端的校验逻辑可以直接复用同一份类型定义。这种"类型即契约"的体验,用传统的Java + JavaScript前后端分离模式完全感受不到。
3. 三件套实战:Claude Code + OpenSpec + Superpowers的完整组合拳
3.1 三件套各解决什么问题
先说清楚这三个东西的分工,避免搞混:
Claude Code是Anthropic推出的命令行AI编程工具,它能读取你本地项目的文件结构,调用终端执行命令,自动编辑代码文件,相当于一个住在你终端里的AI结对编程搭档。相比在网页上问AI,它最大的优势是"在场"——它看得见你的项目,知道你的代码上下文,能直接改文件、跑测试、看报错然后自我修正。
OpenSpec是一套基于Markdown的规格驱动开发(Specification-Driven Development)模板。它解决的核心痛点是:AI编程工具再强,如果需求本身是一团浆糊,产出的代码也是浆糊。OpenSpec提供了一套把模糊需求转化为结构化规格文档的方法,让AI在动手写代码之前,先搞清楚"要做什么""边界在哪""怎么验证",然后再去实现。
Superpowers是一个Claude Code的skills插件集合,来自Jesse Vincent(habnabit)的开源项目。它的核心价值是把一套经过大量实战验证的软件开发方法论编码成AI可以直接调用的"技能"。比如代码审查有专门的review skill,写测试有专门的test-driven development skill,重构有专门的refactoring skill。这些技能不是简单的提示词,而是包含完整工作流的指令集。
打个比方:Claude Code是发动机,Superpowers是变速箱和方向盘,OpenSpec是导航地图。发动机再好,没有导航和操作规范,你也只能在原地打转或者开进沟里。
3.2 环境搭建与第一印象
搭建这套环境只需要几分钟,真正花时间的是后续习惯的养成。具体步骤:
# 安装Claude Code npm install -g @anthropic-ai/claude-code # 在项目根目录初始化 cd your-project claude第一次启动Claude Code时,它会要求你登录Anthropic账号。登录之后,你就可以在一个类似终端的交互界面里跟它对话了。我建议新手上路时开两个终端窗口:一个跑Claude Code,一个正常操作git和查看文件,这样能实时看到AI改了什么,不至于失控。
然后安装Superpowers:
# 安装Superpowers(来源:github.com/worksurgical/claude-code-superpowers) git clone https://github.com/worksurgical/claude-code-superpowers cd claude-code-superpowers ./install.sh安装脚本会把一系列的skills文件放到~/.claude/skills目录下,这样Claude Code启动时就能自动加载。
我自己刚开始用Claude Code的时候,其实是不太信任它的。让它改一个文件,我得盯着一行行看diff,生怕它把别的地方改坏了。但用了一段时间之后,我发现它的优势在于"能看懂整个项目"——当我描述一个bug时,它会先自己浏览相关的几个文件,然后定位到具体代码行,甚至自己写个临时脚本复现问题。这种能力是网页版AI完全不具备的。
3.3 OpenSpec的规格模板长什么样
OpenSpec的核心是一套Markdown文件结构,放在项目的open-spec目录下。每次接到一个需求,你在suggestions/目录下新建一个文件,描述需求的大致想法,然后按照模板逐步展开。
最简化的规格文档包含这几个部分:
# Feature Name ## Why 这个需求为什么存在?解决谁的什么问题? ## What - 用户故事1:作为XX角色,我希望XX,以便XX - 用户故事2:... ## How ### Data Model(数据模型变更是哪些?) ### API Changes(需要新增或修改哪些接口?) ### UI/UX(前端需要做什么改动?) ### Edge Cases(边界情况有哪些?) ## Success Criteria(完成标准) - [ ] 验收条件1 - [ ] 验收条件2你可能会觉得:"这不就是写需求文档吗?"对,本质上就是需求文档,但它是写给AI看的需求文档。区别在于普通需求文档讲究"人看懂就行",OpenSpec要求的是"人能看懂、AI也能执行"——它足够结构化,又是纯文本,Claude Code可以直接读取并且照着执行。
我自己实践下来的经验是:规格不用写太长,但四个部分必须齐全。我见过太多人让AI干活结果翻车,翻车原因几乎都是同一个:"需求没说清楚。"AI不是神,它不会读心术,你给它多模糊的输入,它就还你多模糊的输出。
3.4 Superpowers的核心skills清单
Superpowers内置的skills非常多,我日常最常用的有这些:
| Skill名称 | 用途 | 使用频率 |
|---|---|---|
| test-driven-development | 按TDD流程生成代码 | 几乎每次写新功能 |
| reviewing | 对新代码进行结构化审查 | 每次完成一个功能 |
| refactoring | 安全重构现有代码 | 改遗留代码时 |
| investigating | 排查bug和定位问题 | 出问题时 |
| documenting | 生成/更新文档 | 项目阶段性收尾时 |
最值得一提是test-driven-development这个skill。它的工作流是:先让AI理解你要实现的功能,然后帮你想测试用例和边界情况,接着把期望行为写成测试代码,然后运行测试看到失败(红),最后写实现代码让测试通过(绿)。这个流程本身就是测试驱动开发的完整闭环,AI只是帮你执行得更快。用这种方式写出来的代码,质量比直接"一键生成"高出一大截,因为测试先行逼着AI把需求边界想清楚了。
3.5 为什么选这三个而不是其他方案
我也试过其他组合。比如直接用GitHub Copilot做全栈,或者用Cline(原Claude Dev)插件,再或者用各种网页版的AI编程平台。但最终固定在Claude Code + OpenSpec + Superpowers这套组合,原因有三:
第一,它不绑定具体IDE。我用的编辑器不固定,有时候VS Code,有时候JetBrains,有时候直接Vim。Claude Code跑在终端里,跟IDE无关,切换编辑器完全不影响工作流。
第二,它把AI的"记忆"和"技能"沉淀成了文件。OpenSpec的规格文档沉淀了需求理解,Superpowers的skills沉淀了方法论,这些都是项目资产,可以进git仓库,可以团队共享。用网页版工具聊完就完了,没有任何沉淀。
第三,它更接近真实的工程师工作方式。真实的软件开发不是"提出需求→AI生成→交付",而是在终端里不断试错、排查、修改的循环。Claude Code在终端里操作,天然贴合这个循环。
4. 一条真实需求的端到端工作流拆解
4.1 需求背景:给SaaS产品加一个用量统计功能
纸上谈兵没意思,我直接用一个我在真实项目里做过的功能来演示完整流程。背景是我在做一个多租户SaaS产品——一个B2B的项目管理工具,客户按订阅制付费。当时的需求是:
管理员后台需要新增一个"用量统计"页面,展示当前工作区的API调用次数、存储使用量、活跃用户数这三个核心指标,并且能按时间维度(日/周/月)切换查看。
这个需求看起来不复杂,但牵扯到数据模型(怎么存用量数据)、后端接口(怎么聚合查询)、前端页面(怎么展示图表)三层。如果需求不定义清楚,AI写出来的代码大概率是"能跑但不符合业务逻辑"的。
4.2 第一步:让OpenSpec字段拆透需求
我先在open-spec/suggestions/下建了一个markdown文件,把需求的核心疑问写下来,然后让Claude Code结合我的业务背景,把规格明确。
关键要明确的问题包括:
- 用量数据怎么来的?是系统自动记录的,还是需要从第三方API拉取?
- 三个指标的数据粒度是什么?API调用次数按次计数,存储使用量是快照值还是增量累计?
- 时间维度切换时,后端是一次性把最大范围的数据返回给前端,还是数据点按需加载?
- 管理员看到的用量是当前租户的,还是所有租户的汇总?
- 超量了怎么办?需要在这里提示吗?
这些问题不回答清楚,AI写出来的统计接口大概率是"采集所有数据然后全返回"这种简单粗暴的实现,数据量一大就卡死。
经过讨论,最后定下来的规格要点是:
- 数据模型新增一个
UsageRecord表,按天记录每个租户的三个指标数值。 - 后端新增一个
GET /api/usage/summary?range=day|week|month接口,按租户ID过滤,返回时间序列数据。 - 前端新增一个用量统计页面,用折线图展示三个指标,右上角一个时间段切换器。
- 边界情况:租户刚注册还没有用量数据时,返回空数组,前端显示空状态引导文案。
- 性能约束:时间跨度最大为一年,数据点最多365个,后端单次查询返回,前端不做分页。
第5条是我后来吃了一次亏才加上的,原来推进的时候直接让AI实现,结果AI生成的前端代码会在数据量超过一定阈值的时候把浏览器搞卡。现在写进规格就没人敢乱来。
4.3 第二步:让Claude Code按TDD节奏逐层实现
规格定下来之后,进入编码阶段。我的习惯是不让AI一口气全做完,而是分四步走,每一步都跑测试验证:
第一步:数据模型与迁移。让Claude Code基于规格里的数据模型定义,生成UsageRecord表的Prisma schema和migration文件。
关键指令大致是这样的:
Use the test-driven-development skill to add a new Prisma model for UsageRecord based on the spec in open-spec/features/usage-statistics/. The model should track API calls, storage bytes, active users per tenant per day. Write migration after the model is defined.第二步:后端接口。让Claude Code实现查询逻辑。这时候规格里定的"按天记录、时间范围过滤、租户隔离"就起作用了,AI能直接照规格写出正确的SQL逻辑而不需要反复试错。
第三步:前端页面。让Claude Code基于设计稿和规格生成页面组件。我这里用的是React + ECharts做折线图,AI对这种常见组合的生成能力非常强,基本一次成型。
第四步:联调与审查。让Claude Code用reviewing skill对当前整个feature的代码做一次全面审查,我只需要在命令行里敲一行字,然后坐在旁边看它审查报告。
4.4 实测中遇到的三个典型翻车场景
真实项目不可能一帆风顺。我在这套流程里踩过几个典型的坑,写出来给大家避雷:
翻车场景一:AI生成的前端图表在数据量少时显示异常。当只传一个数据点给ECharts时,折线图默认不显示任何内容,用户会以为页面挂了。这个问题是我自己在浏览器里点出来让Claude修的,修法是在规格里加了一条:“当数据点少于2个时,显示空状态组件而不是图表。”加了这条之后,后面所有类似页面都直接绕开了这个坑。
翻车场景二:SQL查询用了全表扫描。后端接口功能测试全过,但数据量到百万级别的时候,接口响应从200ms涨到4秒。Claude Code生成的Prisma查询没有走索引,因为索引建在了createdAt上而没有建在tenantId + date的联合索引上。修复方式:规格里补充“用量查询必须命中联合索引”,然后让它重写了查询并补了一个数据库迁移。
翻车场景三:AI理解错“活跃用户数”的定义。业务上活跃用户是“当天有登录行为的用户”,但AI实现时用了“当天有API调用行为的用户”。这个必须靠评审把关——AI不会主动质疑你的业务定义,你得在规格里明确“活跃用户数 = 当日有登录会话的用户去重计数”,并且让AI写出测试来锁定这个行为,后面才不会悄悄被别的地方覆盖。
4.5 复查与验收环节的经验
每一个feature完成之后,我不会立刻合并代码,而是会做一次完整的三步复查:
先跑一遍全量测试,确认没有破坏其他功能,这一步用Claude Code做很快,它可以直接在终端运行npm run test并解析输出。然后让Claude Code用reviewing skill对这个feature的代码做一次结构化审查,重点看安全性(有没有SQL注入、是不是租户隔离有漏洞)、性能(有没有N+1查询)、可维护性(代码结构对不对)。最后我手动过一遍核心路径。
前面两次扫描交给AI,最后一遍人工判断是必须的。AI审查的盲区在于"业务合理性和体验合理性"——它不知道这个页面是不是用户真正想要的,但我作为产品负责人需要感同身受地审视。
这三步复查下来,基本能保证合并到主干的代码质量,我在实际项目中靠这套流程把线上bug率压到了历史最低。
5. 从"让AI干活"到"管好AI团队",认知层面的几个转变
5.1 从"写代码"到"审代码"
很多人刚开始用AI编程时会有一个心理落差:怎么AI写的代码不如我自己写的好?我是不是用了个假的AI?
但用了半年之后,我发现了真相——不是AI不行,是我的需求拆解能力不行。当我用OpenSpec把需求定义清楚,再用TDD节奏逐步推进时,AI产出的代码质量远超我的预期。这个过程中,我的角色已经从一个"代码生产者"变成了"代码审查者和管理者"。
就像带一个Junior开发人员:你不能让他凭空写一个复杂功能,你要先跟他讲清楚验收标准、边界条件、技术选型,然后让他写第一版,你再review提整改意见,最后他改到你满意为止。AI也是这么带的,只是它学得快,你只要说一遍它就记住了。你的关键能力变成了"定义质量标准"和"判断代码是否符合预期"。
5.2 提示词不再是"一句话魔法"
网上很多人还在追求那种"一句话生成整个应用"的魔法提示词,但我可以负责任地说:那些都是demo级的玩具。真实生产环境中,最有价值的是"分步骤、带约束、可验证"的长指令。
一个典型的坏指令是:"帮我做一个完整的电商系统。"AI听了会愣住,然后凭记忆写一堆泛泛的代码,最后你得到的是个四不像。
一个好的指令是这样的:
Implement the create-order endpoint based on the spec in open-spec/features/order-creation/. Constraints: - Use the existing auth middleware to get the current user ID - Validate that the order items reference products in the same tenant - Use a database transaction since we need to update stock and create order atomically - Return 400 with a structured error message if stock is insufficient - Write tests in /tests/orders using the existing test fixtures你会发现这本质上就是你在给一个中级工程师派活时说的话——有目标、有约束、有验证方式。这才是"AI Native工程师"的核心技能:把脑子里的模糊想法翻译成AI能执行的高质量指令。
5.3 稳定性大于炫技
我刚开始用AI编程时有个坏习惯,总想试试它能不能写很炫的东西,比如复杂的动画交互、动态表单生成器之类的。后来发现,这类“炫技型”需求恰恰最容易让AI翻车。因为复杂交互的边界条件太多,AI很容易顾此失彼。
反之,稳定交付的核心在于把复杂度拆开。比如你要一个动态表单配置器,不要让它一口气生成整个系统,而是拆成四五个小的需求点:表单schema定义、渲染器、校验逻辑、值管理、提交接口,按顺序逐个交付,每个阶段都有测试守护。这样就算某一个环节AI翻车了,你也能快速定位、单独修复,不影响其他环节。
5.4 学会给AI"立规矩"
Claude Code支持一个项目级的配置文件——CLAUDE.md,放在项目根目录。这个文件是给AI看的"公司规章制度",你可以在里面定义项目的技术栈约定、代码风格、禁止事项等等。
我的CLAUDE.md长这样:
# CLAUDE.md ## 项目技术栈 - 前端:React 18 + TypeScript + TailwindCSS - 后端:Node.js + Hono + PostgreSQL + Prisma - 部署:PM2 + Nginx + GitHub Actions ## 代码规范 - 所有新代码必须使用TypeScript,禁止使用any - 后端API必须用zod做输入校验 - 数据库查询禁止使用select *,必须精确指定字段 - 新功能的测试覆盖率不得低于80%(按语句覆盖) ## 工作流要求 - 每次修改前,先查看相关文件结构,不要盲目猜测 - 实现新功能前,查看open-spec目录下是否已有对应规格文档 - 写完代码后必须运行相关测试,确认测试通过再报告完成 - 不要擅自修改CLAUDE.md之外的配置文件的格式 ## 禁止事项 - 不要使用require(),统一用ESModule - 不要在客户端组件中直接调用后端API,必须走服务端请求 - 不要把敏感信息(API key、数据库密码)硬编码在任何代码或配置文件中有这份CLAUDE.md之后,AI每次改代码时都会先读一遍规则,大幅减少了AI"随手发挥"的情况。有次我让它加一个新接口,它自觉遵守了"必须用zod做输入校验"的规矩,写出来的代码干净得很,我都不用怎么改。
5.5 重新定义"工程师"与"代码"的关系
最后说一个更深层次的思考。用AI写代码之后,我一度产生过恐惧——"我是不是正在被取代?"但后来想通了,代码从来就不是工程师的核心资产,代码承载的业务逻辑和解决方案才是。
AI Native工程师的本质变化是:你从"亲手盖房子"变成了"指挥施工队盖房子",你需要懂结构力学、懂设计图纸、懂施工流程,但不需要亲手搬砖。换句话说,AI没有让工程师这个角色消失,它消灭的是"纯搬砖"的岗位,放大了"懂工程"的人类价值。
前端转全栈这件事也是这样。以前前端和后端的边界是物理性的——语言不同、框架不同、部署环境不同,你没个三五年跨不过去。现在这个边界被AI冲淡了,只要你懂系统设计的基本原则,AI帮你补掉语言和框架的细节,你能以很高的效率同时驾驭两端。
6. 转型路上的时间表与避坑指南
6.1 三个月快速起步时间表
很多人问我要一个具体的学习路线,这里我按自己的经验整理一份,你结合自己的情况调整即可:
第一个月:补底子
- 花两周把Node.js + Hono + PostgreSQL过一遍,能写一个简单的增删改查REST API
- 花一周学习基本的数据库设计:一对多、多对多、索引原理、事务概念
- 花几天把Claude Code装好,用Superpowers的TDD技能写几个小功能,感受AI协作的节奏
第二个月:做完整项目
- 选一个中等复杂度的需求,比如一个带用户认证、团队管理、任务看板的协作工具
- 用OpenSpec先把需求规格写透,再动手写代码
- 整个过程强制用TDD技能,禁止"直接生成然后跑起来就算完"
第三个月:上线与复盘
- 把项目部署到服务器,走一遍Nginx + PM2 + HTTPS全流程
- 请身边的朋友或同事真实用一下,收集反馈并修复问题
- 把这个项目作为你的作品集,写一篇完整的技术复盘,梳理整个过程中AI帮你做了什么、你做了什么、踩了哪些坑
6.2 新手最常踩的五个坑
第一:上手就放权限让AI随便改文件。新手最容易图省事,一句"帮我修复所有bug"就把整个项目丢给AI。结果AI可能把API的版本改了、配置文件改了、甚至把没有关联的文件也重构了一遍,最后你连diff都看不懂。破解方式:每次让AI修改前,明确告诉它"只改哪些文件"、"不动哪些文件"、"改完给我diff summary"。
第二:需求模糊就开始编码。我以前犯过这个错——给AI说"帮我做一个用户系统",结果AI做了个只有注册登录的极简系统,完全没有角色权限、没有用户管理界面、没有修改密码流程。后来养成用OpenSpec写规格的习惯,这个问题基本杜绝了。
第三:不写测试就急着验收。AI生成代码的速度太快,它一分钟可能写500行代码,你不会一行行去读,但如果没测试兜底,一个小逻辑错误可能上线才会暴露。现在我的规矩是:任何feature没有配套测试就不算完成,直接让AI回到TDD的起点重新补测试。
第四:不让AI审视自己的代码。很多人用完AI生成代码就直接提交,其实Claude Code的reviewing skill非常有用,它能把常见的痛点找出来。你甚至可以让AI扮演一个严格的代码审查者,以"安全工作"的标准审查刚生成的代码,往往能发现不少问题。
第五:一次性让AI处理过多上下文。Claude Code在终端里虽然能看到整个项目,但它的“注意力”是有限的。如果你在一个会话里让它改了五六个文件,到后面它可能会忘记最开始的需求。我的经验是:一个会话专注一个任务,任务完成后开新会话再来下一个,保持每段上下文的清晰度。
6.3 一个更长期的成长思路
三个月跑完一个完整项目之后,你会发现自己的核心竞争力其实已经变了——你已经是一个"能借助AI把产品从零带到上线"的人。这个能力在传统分工模式下,往往需要一个三到五人的小队才能完成。
接下来的路怎么走?我认为有几个方向值得深耕:
一是继续加深垂直领域的业务理解。AI Native工程师不能只会写通用CRUD,你要在某一个细分行业扎根。比如你做跨境电商SaaS,就要懂店铺、商品、订单、库存、物流、支付那套领域模型是怎么回事,为什么某个状态流转是这样的。AI能帮你写代码,但行业知识是要你自己积累的。
二是训练AI帮你做更复杂的架构决策。比如当你的系统流量增大时,从单体架构到微服务的拆分时机和方案,AI可以给你建议,但最终拍板需要你对系统的实际运行状态有深刻感知。这种感知力来自长期运维和迭代,AI替代不了。
三是建立自己的技能插件库。Superpowers是别人开源的,但你完全可以根据自己的工作习惯,把常用流程沉淀成自己的skills。比如给我的项目做性能优化,我做了一套custom skill:先跑Lighthouse拿数据,再定位瓶颈,自动生成优化报告。这套skill现在已经内化为我的“肌肉记忆”,而且可以随时复制给其他项目用。
7. 写给自己和同路人的一些话
写这篇文章的过程中,我回顾了自己这一年多从"写页面"到"AI Native全栈产品工程师"的整个过程。
最大的感受是,技术本身在AI时代贬值比想象中快,但工程思维、产品理解力、人与AI协作的经验,反而越来越值钱。你不会因为"会写React"就变得不可替代,但你会因为"能在AI帮助下快速把想法变成可用产品"而变得稀缺。
我给前端工程师的诚恳建议是:别慌,别焦虑,更别固步自封。前端背景给你带来的审美能力、交互理解、调试直觉,恰恰是AI时代最稀缺的能力。你要做的不是"转行",而是在原有地基上加盖更高的楼层——学一点后端,懂一点数据库设计,然后用AI把这些领域之间的缝隙填平。
三件套只是工具,真正的分水岭在于你有没有建立起"规格驱动、测试先行、审查收尾"的工作方法论。工具会变,方法论长期有效。当你拥有了从模糊想法到稳定交付的完整链路,你就不会再问"前端还有没有前途"这种问题了。