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

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

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

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

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

7595 次点击
所在节点    程序员
74 条回复
lzj307077687
2019-08-06 09:08:59 +08:00
@Soar360 #33 是这样的
之前做导出 数据到接近 2W 的时候就开始不行,加内存限制和运行时间感觉也没啥太大意义
后面直接就是走异步 CLI 模式跑 另外做个页面展示所有已生成的文件让用户下载和删除
laodao1990
2019-08-06 09:12:52 +08:00
于情于理,数据加工这块应该是后端干的。
但是呢,如果多个不同客户端,不同版本要的东西不一样,那就扔回去,别客气,要不然以后全是坑
stevenkang
2019-08-06 09:14:07 +08:00
前端负责数据格式化显示,后端负责提供基础数据。

典型案例:某个数据为 10%,后端应当返回 0.1 而不是 10%,应当由前端将 0.1 格式化为 10%

同理,某个数据为 10 万,后端应当返回 100000 而不是 10 (万),应当由前端将 100000 格式化为 10 万

理由:后端并不知道如何显示数据更好,后端只需要提供统一规范的基础数据,前端与用户体验有关,根据实际情况转换为不同格式的数据进行展示即可
a852695
2019-08-06 09:22:34 +08:00
这个时候你需要数据中台,先在 nodejs 层将数据转成自己想要的
519718366
2019-08-06 09:27:04 +08:00
1 如果值是 bussiness,那是后端的活儿
如果属性名叫 bussiness 值是 0/1 或者 t/f,我们这是前端的活儿

2,3 都是后端
519718366
2019-08-06 09:31:48 +08:00
1 如果值是 bussiness,那是后端的活儿
如果属性名叫 bussiness 值是 0/1 或者 t/f,我们这是前端的活儿

2,3 都是后端
Aresxue
2019-08-06 09:34:45 +08:00
1.前后端都能干,建议后端提供翻译接口或者前端翻译,不建议直接返回商家,一个是中文传输可能存在问题,另一个是翻译成中文英文信息就丢失了;
2.前后端都能做,看返回 A 和 B 的这个接口是否可复用,属于会被其他服务调用的基础服务,若只是为当前页面定制的接口,必须后端做;
3.后端做。
mapper
2019-08-06 09:38:53 +08:00
谁最近划水划得多谁做
zsc8917zsc
2019-08-06 09:49:05 +08:00
1、所有接第三方接口的都过一手自己的后端,这样好处是可以保证第三方换 API 的时候自己可以不用发版无缝切换。
2、关于计算和渲染部分,有时候利用客户端的 CPU 和 GPU 会减少服务器压力,这个得根据具体业务来进行,因为如果这样的话存在数据被篡改的可能。
StarkWhite
2019-08-06 10:12:58 +08:00
GraphQL 了解一下( FB 出品,必属精品)
https://www.v2ex.com/t/589138
woshipanghu
2019-08-06 10:18:09 +08:00
这个对应关系原来叫数据加工啊
danmu17
2019-08-06 10:27:58 +08:00
@sampeng 我说的是我的国家,从帖子里看出中国的情况好像不太一样。目前欧美的问题其实是前端做了太多后端的活,导致了很多安全隐患。我猜测中国应该是因为大家都在自己造轮子所以导致了相反的情况。
37Y37
2019-08-06 10:35:18 +08:00
后端做方便,前端做节省服务器资源
wangxiaoaer
2019-08-06 10:59:20 +08:00
这特么就没有一个明确的标准,上面一堆前端甩锅给后端,后端甩锅给前端。

当初说起前端工程化,前端渲染、前端路由的时候前端可是抢的挺有劲的啊。

个人觉得这个数据组织谁来做就根据当前架构来,前后端分离的,前端已经上了 MVVM 的,就自己处理了吧。

还是传统后端渲染,前端做一些简单交互的,后端处理吧。
kakudesu
2019-08-06 11:06:22 +08:00
很简单的问题啊,

前端:不就是个接口么?
后端:不就是个页面么?

保命
noobcoder1
2019-08-06 13:17:22 +08:00
你们公司的人这么会甩锅你还呆着干嘛 ,这么一件小事还要论责任。。。
chairuosen
2019-08-06 13:25:57 +08:00
1 2 前端做,3 后端做
SuperMild
2019-08-06 13:44:29 +08:00
第 1 种情况,第三方 API 返回的数据,后端要不要存数据库?如果不涉及数据库的,还让后端处理,这有点过分了,后端 IO、CPU 都是钱啊。
sdushn
2019-08-06 14:37:50 +08:00
我司都是后端做了,不过我感觉 1 2 这种前端做也无妨,如果后端不要入库的话
smallpython
2019-08-06 14:56:26 +08:00
肯定是前端做
后端做的话用户多了影响服务器性能
前端消耗的是客户机的资源
而且是分散的

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

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

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

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

© 2021 V2EX