后端同学,这锅我真的背不动了!—— 前端眼中的"全栈"协作血泪史

53 阅读3分钟

引言

作为一个前端工程师,我每天都在和 UI、交互、性能优化斗智斗勇。但最让我崩溃的,不是浏览器的兼容性问题,也不是产品经理的“这个需求很简单”,而是后端同学的一句话

“这个数据问题,前端能不能处理一下?”

我:???

今天,我就来吐槽一下,在前端和后端的“甜蜜”协作中,那些让我血压飙升的瞬间。


1. “这个字段前端自己算一下吧”

场景
后端返回的数据里,明明可以计算好的字段,非要前端自己算。

经典案例

  • 订单总价:后端返回 price 和 quantity,让前端算 totalPrice
  • 日期格式化:后端返回 "2024-05-20T12:00:00Z",让前端自己转成 "5月20日"
  • 数据过滤:后端返回 1000 条数据,让前端做分页、筛选、排序。

我的内心

你们数据库是摆设吗?SQL 的 SUM()GROUP BYORDER BY 是装饰品?

最终结果
前端性能爆炸,用户电脑风扇狂转,产品经理:“这个页面怎么这么卡?”


2. “这个接口返回的数据结构,你自己重组一下吧”

场景
后端返回的数据结构极其诡异,前端不得不写一堆 mapreducefilter 来适配 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 渲染、交互优化、用户体验。

如果所有问题都让前端处理,那后端存在的意义是什么?

希望后端同学能多站在前端的角度思考,不要让前端成为“接锅侠”

最后,送给大家一句话:

“前端可以背锅,但不能背所有的锅。”


你遇到过哪些让前端背锅的奇葩问题?欢迎在评论区吐槽!  🍿🔥

(本文纯属调侃,实际工作中前后端应该互相理解,共同进步~)