引言
作为一个前端工程师,我每天都在和 UI、交互、性能优化斗智斗勇。但最让我崩溃的,不是浏览器的兼容性问题,也不是产品经理的“这个需求很简单”,而是后端同学的一句话:
“这个数据问题,前端能不能处理一下?”
我:???
今天,我就来吐槽一下,在前端和后端的“甜蜜”协作中,那些让我血压飙升的瞬间。
1. “这个字段前端自己算一下吧”
场景:
后端返回的数据里,明明可以计算好的字段,非要前端自己算。
经典案例:
- 订单总价:后端返回
price和quantity,让前端算totalPrice。 - 日期格式化:后端返回
"2024-05-20T12:00:00Z",让前端自己转成"5月20日"。 - 数据过滤:后端返回 1000 条数据,让前端做分页、筛选、排序。
我的内心:
你们数据库是摆设吗?SQL 的
SUM()、GROUP BY、ORDER BY是装饰品?
最终结果:
前端性能爆炸,用户电脑风扇狂转,产品经理:“这个页面怎么这么卡?”
2. “这个接口返回的数据结构,你自己重组一下吧”
场景:
后端返回的数据结构极其诡异,前端不得不写一堆 map、reduce、filter 来适配 UI。
经典案例:
json
复制
{
"code": 200,
"data": {
"list": [
{ "id": 1, "name": "张三" },
{ "id": 2, "name": "李四" }
],
"total": 2
},
"msg": "success"
}
前端期望:
json
复制
{
"users": [
{ "id": 1, "name": "张三" },
{ "id": 2, "name": "李四" }
],
"count": 2
}
后端回复:
“前端改一下不就行了?反正你们 JS 处理数据方便。”
我的内心:
你们 Java/Python 处理数据不比 JS 强?
3. “这个 API 还没好,你先 mock 数据吧”
场景:
项目排期紧,后端说接口还没好,让前端自己 mock 数据。
经典对话:
- 前端:“接口什么时候能好?”
- 后端:“快了,你先 mock 一下。”
- (三天后)
- 前端:“接口好了吗?”
- 后端:“还在联调,你先 mock 一下。”
- (一周后)
- 前端:“……”
- 后端:“接口变了,之前的 mock 数据要调整一下。”
我的内心:
我 mock 的不是数据,是寂寞。
4. “这个报错是前端的问题吧?”
场景:
线上出 Bug 了,后端第一反应:“前端是不是传参错了?”
经典案例:
- 前端传
{ page: 1, size: 10 },后端报 500。 - 后端:“你们没传
pageNum和pageSize。” - 前端:“文档里写的是
page和size!” - 后端:“哦,文档没更新。”
我的内心:
你们是不是觉得前端是 Bug 检测器?
5. “这个功能前端能不能直接调第三方 API?”
场景:
某些功能明明应该后端处理,却让前端直接调第三方 API。
经典案例:
- 支付功能,让前端直接调支付宝/微信的 JS SDK。
- 文件上传,让前端直传 OSS,不经过后端校验。
- 敏感数据加密,让前端自己加密再传给后端。
我的内心:
你们是不是觉得前端是万能的?那还要后端干啥?
总结:前端不是“全栈”,协作需要互相理解
前端能做的事情确实很多,但不代表所有问题都应该前端解决。合理的分工应该是:
- 后端:数据处理、业务逻辑、安全性、性能优化。
- 前端:UI 渲染、交互优化、用户体验。
如果所有问题都让前端处理,那后端存在的意义是什么?
希望后端同学能多站在前端的角度思考,不要让前端成为“接锅侠” 。
最后,送给大家一句话:
“前端可以背锅,但不能背所有的锅。”
你遇到过哪些让前端背锅的奇葩问题?欢迎在评论区吐槽! 🍿🔥
(本文纯属调侃,实际工作中前后端应该互相理解,共同进步~)