```html web开发是前端还是后端? web开发是前端还是后端? 面试一个应届生,简历上写着“精通Web开发”。端还我问:“你做过前后端分离的后端项目吗?”他愣了两秒,说:“Web开发不就是发前写网页吗?Dreamweaver那种。”我差点把嘴里的端还咖啡喷到键盘上。 这事儿真不怪他。后端你去招聘网站搜“Web开发工程师”,发前出来的端还岗位描述五花八门:有的要求会React,有的后端要求懂Spring Boot,还有的发前写“熟悉Nginx配置优先”。Web开发从来就不是端还“前端”或者“后端”能单独装下的东西。它更像一个三明治——前端是后端露在外面的生菜和面包,后端是发前夹在中间的肉饼,而HTTP协议就是端还那层把两边黏在一起的芝士。 我第一份工作在一家小创业公司,后端全栈只有两个人。我写jQuery往DOM里塞数据,同事写PHP从MySQL里捞数据。那时候“前端”这个词还没现在这么卷,大家管自己叫“做网站的”。后来React、Vue起来了,前端突然变成了一门正经的工程学科,要学构建工具、状态管理、虚拟DOM。后端也没闲着,微服务、容器化、消息队列,一套接一套。两边越走越远,但Web开发这个筐,始终把两边都装着。 // 一个典型的Web请求生命周期: // 1. 浏览器(前端)发起 fetch('/api/user') // 2. 请求穿过网络,到达服务器 // 3. 后端(Node/Java/Python)处理路由、查数据库 // 4. 返回 JSON 给前端 // 5. 前端把 JSON 渲染成你看到的界面 // 缺了任何一步,这页面都活不过来。 有人非要争个“谁更重要”。我的看法很直接:前端决定用户愿不愿意用,后端决定用户能不能用。你界面再炫,点个按钮转圈五秒没反应,用户早跑了。你后端再稳,页面长得像1998年的个人主页,新用户连注册按钮都找不到。去年我给一个电商项目做性能优化,后端把接口响应从800ms压到120ms,结果前端一个没加防抖的搜索框,每次输入都发请求,服务器照样被压垮。你看,这锅算谁的? 现在流行“全栈”,但全栈不是让你一个人干完所有活。它是指你至少能看懂对面在干什么。我见过后端出身的人写前端,HTML里嵌套三层div,CSS全靠!important硬怼。也见过前端转后端,SQL查询直接写在Controller里,连个索引都不加。两边都觉得自己委屈:“这不是我的活啊。”可Web开发这行,从来就没有泾渭分明的边界。你写个表单提交,前端要校验格式,后端要防SQL注入,中间还得商量好字段命名——用userId还是user_id?这算前端还是后端的事? 说个真事。上个月帮朋友看一个线上bug:用户上传头像,前端显示成功,但刷新页面就变回默认图。前端工程师查了半天,说接口返回200没问题。后端工程师查了半天,说文件确实存到磁盘了。最后发现是Nginx配置里client_max_body_size没改,超过1MB的请求直接被拒了,但前端没处理这个错误码。你看,这问题既不在前端也不在后端,在中间那层“谁都没管”的地带。 所以我的结论可能让你失望:Web开发既是前端也是后端,但更准确地说,它是关于“数据怎么从数据库跑到用户屏幕上”的一整条链路。你可以在链路的任何一段深挖,成为专家。但如果你只盯着自己那一亩三分地,遇到跨端问题就甩锅,那永远只是个“写页面的”或者“写接口的”。真正的Web开发者,心里得有一张完整的图——从用户点击到服务器响应,每一跳都清楚发生了什么。至于title上写前端还是后端,那是HR的事,不是技术的事。 下次有人问你“Web开发是前端还是后端”,你可以反问他:“你觉得开车是方向盘还是发动机?” ``` |