我干了 8 年全栈,先说结论:很多岗位叫全栈,其实是没人兜底
2016 年我在杭州文三路一家 7 人小公司入行,前端 Vue2 + Element UI,后端 Spring Boot 1.5 + MyBatis,MySQL 5.7 跑在 2C4G 阿里云 ECS 上。老板说你是全栈,所以页面、接口、服务器、数据库都归你。我当时月薪 9k,觉得自己很值。后来才明白,那不是全栈,那是没人兜底。
那几年我修过 Nginx 502,也半夜清过 MySQL 慢查询,最惨一次订单表 1200 万行,列表页 P95 620ms,用户骂到客服。我先 EXPLAIN,发现 type=ALL、rows 80 万,加了 (tenant_id, created_at, status) 联合索引,再把热点数据丢 Redis 缓存 60s,P95 降到 120ms。这不是炫技,是小公司全栈的日常。
所以第一件要对比的事:小公司全栈和大厂全栈,名字一样,活法完全不一样。小公司要你 React/Vue 能写、Java/Node 能调、Docker 能起、Nginx 能改、SQL 能查、产品能哄,工资可能 15k-25k。大厂全栈更多是 BFF、全链路效能、Node 聚合 12 个微服务,背后有 SRE、DBA、测试平台兜底,QPS 3000、P99 120ms 是团队指标,不是你一个人硬扛。
别按前端-后端-运维的顺序学,按一个能收钱的闭环倒推
如果你现在搜全栈学习路线,大概率会看到 HTML、CSS、JS、React、Node、MySQL、Redis、Docker、K8s 一大串。看完就焦虑,因为 3 个月根本学不完。我自己的路线是反的:先找一个你真正烦的小问题,比如每周给客户发报表,然后用 Next.js 14 App Router + Supabase 做登录、表单、Postgres 表,Resend 发邮件,Vercel Cron 每天 8 点跑。部署用 Vercel,数据库备份到 Cloudflare R2,先找 3 个真实用户,收 19 元/月。
具体参数别贪:Node 20 LTS、PostgreSQL 15、Next.js 14、Supabase 免费版 500MB、Vercel Hobby 100GB 带宽但仅限非商业,商业要 Pro 20 美元/月。你做完这个闭环,再回头看 Redis、MQ、K8s,会知道它们解决的是哪个环节的问题,而不是为了简历好看。
我见过太多人刷了 300 道 LeetCode、背了 50 道八股,却没独立上线过一个能付款的项目。面试时你说精通 Redis,面试官问缓存穿透,你答布隆过滤器、空值缓存、互斥锁,听起来没错。但如果你能补一句:我们空值缓存 60s,布隆误判率 0.01,热点 key 过期时间加 30s 随机抖动,效果会完全不一样。
全栈的深度不是每层 90 分,而是有一层 90 分、其他层 60 分能串起来
我前端比后端强,React 状态管理和性能优化能到 90 分,Java 后端大概 70 分,SQL 索引和慢查询能到 80 分,K8s 只会 kubectl get pod 和看日志。但这不影响我独立交付,因为我知道什么时候该找人。2021 年一个项目,日活 2000,订单 1200 万,服务器 4C8G,接口 CPU 冲到 70%,我没上来就分库分表,而是先加索引、再上 Redis、最后做冷热分离,成本只多了 70 元/月,CPU 降到 35%。
这里有个反常识观点:全栈的终点不是架构师,是产品工程师加成本工程师。你要能算账:这个功能值不值得做,服务器每月多 300 块,人力多 2 天,能带来 10 个付费用户,每个 19 元,回本 19 天,那可以干。如果多 3000 块服务器成本,只多 3 个用户,那就该砍。全栈不是让你什么都自己干,而是让你有能力判断这件事该不该干、该花多少钱干、该找谁干。
如果你只是喜欢技术,去深钻一个方向,前端、后端、AI infra 都行。如果你想做独立产品、去小团队当第一个技术,全栈是杠杆。别被全栈等于高薪骗了,现在招聘市场两极分化:15k 以下要你全干,30k 以上要你全链路加业务判断,中间那层最容易被 AI 和外包夹击。
面试全栈别背精通,讲 trade-off 和数字
我面过一些人,简历写精通 Vue、React、Spring Boot、K8s,问项目就说做了后台管理系统。这个不是不能讲,是太薄。你可以用这个模板:背景是日活 2000、订单 1200 万、服务器 4C8G;问题是列表页 P95 620ms;方案是先 EXPLAIN 发现全表扫,rows 80 万,加联合索引,Redis 缓存 60s,游标分页;结果 P95 120ms,CPU 从 70% 降到 35%;代价是缓存一致性延迟 60s,用户改地址后可能看到旧数据,所以我们加主动删除 key。
这比背 100 遍 Redis 持久化 RDB 和 AOF 区别有用。全栈面试真正怕的不是你不会 K8s,而是你什么都碰过、什么都不负责。你说你负责,就要有监控、有回滚、有报警。比如 Nginx 502,不要只说重启,查 upstream timed out,看 PHP-FPM 或 Node 进程数,看 MySQL 连接池,最后加健康检查和自动重启,这才是全栈。
最后给一个 6 个月路线,别贪多:第 1-2 月 HTML/CSS/JS 加 React 或 Vue,做带登录的 Todo 部署 Vercel;第 3 月 Node.js 加 PostgreSQL,写 20 个 REST 接口,学 JWT、索引、事务;第 4 月 Docker 加 Nginx 加 GitHub Actions,部署到 2C4G 服务器配 HTTPS;第 5 月加 Redis、队列、日志,用 k6 模拟 100 并发;第 6 月做第二个项目,找 10 个用户,收钱或收集反馈。每周 10-15 小时,别辞职赌。坚持 6 个月,再判断要不要 All in 全栈。