朋友在咖啡馆改简历,盯着「全栈工程师」那栏发呆。他做了三年前端,Vue 用得溜,组件拆得明白,可每次看到招聘要求里写着「熟悉 Node.js、能独立部署服务、了解数据库设计」,手就不自觉抖一下。
前端和后端,像两个频道
你在浏览器这头把页面做得漂漂亮亮,动画丝滑,交互流畅。用户点按钮,数据变了,视图更新了——但你不知道那条数据是从哪来的,服务器怎么处理的,数据库长啥样。就像在家用 Wi-Fi,你能刷视频打游戏,但路由器背后的拨号、NAT 转发、IP 分配,根本看不见。
转全栈的第一道坎,不是技术,是视角切换。从前只关心「用户看到什么」,现在得操心「请求怎么进来、数据怎么存、接口怎么设计」。
从 Express 开始,别一上来就搞 Koa
很多人想一步到位,直接上 NestJS 或者 GraphQL。其实不如先用 Express 写个接口试试水。
const express = require('express');
const app = express();
app.get('/api/user', (req, res) => {
res.json({ id: 1, name: 'zhangsan' });
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
几行代码,一个 API 就跑起来了。这时候你会突然意识到:原来前端 fetch 的那个地址,是这么搭出来的。这种「亲手打通」的感觉,比看十篇教程都管用。
数据库不用一开始就上集群
MySQL 安装完不会配?先用 SQLite。它不需要服务进程,一个文件就是数据库。写个简单的用户注册登录,数据存进去能读出来就行。
等你习惯了 SQL 语句,再试着把 SQLite 换成 MySQL,看看连接池怎么配,环境变量怎么管理。一步步来,别指望三天就搞定分库分表。
部署才是照妖镜
本地跑得好好的项目,一上服务器就 502。这时候你才发现,nginx 配置不只是转发请求,还要处理静态资源、跨域、HTTPS。域名解析、SSL 证书、PM2 守护进程,全是新知识点。
有个哥们第一次部署,把 .env 文件传到服务器,结果密钥泄露,半夜被叫起来删账号。后来他学会了用 dotenv-safe,也记住了:生产环境和开发环境,差的不是代码,是细节。
全栈不是样样精通
没人要求你既写出高性能 React 组件,又能调优 MySQL 索引。真正的全栈,是能在前端发现问题时,顺着网线查到后端日志,在数据库慢查询里找到根源。
比如用户说列表加载慢,你不再只会优化虚拟滚动,还能看看接口响应时间,是不是缺少索引,或者缓存没生效。这种连贯性,才是价值所在。
前端转全栈,难不难?就像从会用路由器,到能自己拉网线组局域网。开始懵,走着走着,路就出来了。