关于数据加工,前端后端责任讨论

2019-08-05 17:40:31 +08:00
 zero47

如题,经常遇到一些调用第三方 API 需要对数据处理问题,前后端总是分不清责任。以下是常见的三个问题

  1. 字符串转换的问题,客户端需要显示“商家”,三方 API 返回 business,是否需要后端转换后返回呢?
  2. 三方如 API 返回 A 和 B,客户端需要显示一个 C,C 的值为他们的平均值,是否需要后端计算后返回?
  3. 搜索淘宝优惠券,需要过滤一些数据,假设淘宝会返回过期的优惠券,需要过滤掉,是否需要后端每次对搜索的结果进行过滤呢?

有没有那一个标准文件指定过这些问题呢?

7566 次点击
所在节点    程序员
74 条回复
xh520630
2019-08-05 19:32:50 +08:00
简单啊,前端不做数据处理.
这些属于数据处理吗,
是,那就后端来做.
ps,小弟也是后端,这 2,3 根本没什么好问的完完全全就是后端的事
Torpedo
2019-08-05 19:40:27 +08:00
一些思考方式:
1、从整个全局链路来看,谁做最好?
2、谁的主动性更高?(谁好说话)
hhhsuan
2019-08-05 19:46:56 +08:00
后端渲染前端只负责显示
taotaodaddy
2019-08-05 19:48:20 +08:00
工资高的做(滑稽)
PerpetualHeng
2019-08-05 20:00:23 +08:00
具体情况具体分析,你说的这些目前来看,是后端做更合适。
Sparetire
2019-08-05 20:18:02 +08:00
如果多端展示一致,那就后端处理好,不用每个端都处理一遍,多一个客户端处理就多一点出错的可能
如果多端都要同一个数据,然后在本地进一步处理,做不同的逻辑或展示,那就前端处理,多端可以复用同一个接口,免得后端给每个端都出个接口
另一个考量因素是频繁更新的数据,而修改这些数据需要前端 /客户端重新打包发布,那直接在后端改数据好过前端重新打包发布
cutlove
2019-08-05 20:25:10 +08:00
我们只是数据的搬运工[doge]
jimrok
2019-08-05 20:31:56 +08:00
让后端去搞,假设你的第三方过段时间就不靠谱了,你不能让客户去升级新的客户端,后端切换新的 API 应该让前端无感。
seeker
2019-08-05 20:43:06 +08:00
第一个可以让前端解决。因为语言属于界面展示范畴,前端也要 i18n 的吧。
后面两个属于逻辑,个人倾向后端解决。
OSF2E
2019-08-05 21:47:58 +08:00
举个类似场景的问题,外籍教练到中国男足上班,教练不懂中文就必须有个翻译,那么挑选翻译的标准至少必须有以下几点:1、两种语言的口语水平相对一致。2、有足球相关的专业知识。

另外需要注意的地方是,教练、翻译、球员是三个功能责任相对独立的技术栈,一般情况下,教练或者球员无法达到专业翻译的技术水平。

所以,解决你的问题的关键是找到一个具备你所列举的相关问题的技术栈的“第三方角色”,考虑到前后端本质上还是处于同一个技术领域,前端或者后端中有人可能有能力兼任这个角色。

但是,工作内容划分上,还是必须大致分为 [前端] [后端] [交叉] 这几个部分, [交叉] 的部分不能让无法胜任的人来做,换句话说,就是不能让只懂前端或者只懂后端的人去做。
wu67
2019-08-05 21:56:47 +08:00
我觉得吧, 后端应该注重计算和逻辑处理, 前端应该负责展现和渲染.

那么需要计算的 2 和精确逻辑判断 3 的应该由后端干, 而进行简单映射转换的 1 应该后前端干. 你不能因为‘前端’ 好几个同事都要写一遍映射, 就把这个推给后端只用写一遍. 当用户数量起来了, ‘前端’干多少次处理基本不影响, 但是全丢给后端干, 那就是‘广大用户吊锤服务器了’
saulshao
2019-08-05 22:06:30 +08:00
原则上我同意 @wu67 在 31 楼的观点。单纯的显示,例如从某个名字换成另外一个,这种事情应该由前端实现。但是如果需要计算平均值,求和,甚至搞不好还要搞机器学习,这种东西应该后端来干。
所以 1 应该前端干(当然,假如你的翻译还需要用到另外一个后端数据库甚至 NLP,那就是另外一个故事了)。2 和 3 都应该由后端来干。
我不太了解这是不是属于架构层面的事情......
Soar360
2019-08-05 22:44:15 +08:00
一个报表下载 PHP 后端以数据量太大为由拒绝输出结果 要让客户端分页获取然后再拼接 Excel 总共两万左右的量级 他说 PHP 内存会爆掉……
starsriver
2019-08-05 23:07:44 +08:00
这种的最好交给前端。
虽然只要不是返回 <view>这类型的,基本上后台锅。
aliipay
2019-08-06 00:38:42 +08:00
@Soar360 这可能是 php 的锅
ByZHkc3
2019-08-06 00:47:37 +08:00
啊哈哈,很多后端都扔给前端处理了,唉
vkhsyj
2019-08-06 01:11:58 +08:00
应该是后端负责处理的,前端不需要知道数据是从哪里来的
danmu17
2019-08-06 08:12:19 +08:00
最基本的原则当然是能扔给客户端做的事情就全部扔给客户端,除非存在内容被篡改的风险。
这样可以降低成本和 CC 的风险。
不过现实中往往是倾向于节约成本所以往往想不到内容存在被篡改的风险,结果导致很多安全隐患。
sampeng
2019-08-06 08:21:58 +08:00
楼上说到能给前端做的别给后端做的人一只手都能数过来

有些是后端做的。比如去重。但 lz 这些可以前端可以后端的。肯定都让前端做。假设你 a 客户端要现实客户。b 客户端要显示爸爸。c 客户端要显示甲方。一个接口肯定干不了。

另一方面,平均数的问题。服务器资源不是钱啊…
jzmws
2019-08-06 08:35:10 +08:00
我的原则是 前端只负责展示数据,不错数据加工, 更别说计算了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/589269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX