关于前后端分离接口和展示层的一些问题

2019-07-02 11:41:09 +08:00
 lihongjie0209
  1. 排序问题

假如接口返回的数据是 3 1 2, 但是前端需要展示的是 1 2 3, 并且没有分页, 一共就 3 条数据, 那么这个排序是前端做还是后端做.

  1. 数据整理问题

假如接口返回的是一个数组, 但是前端需要一个树, 那么这个数据整理是前端做还是后端做.

我的想法是后端和展示层不依赖, 数据整理和排序都应该是展示层的工作.

实际情况是前端做起来很费力, 只能我专门写一个整理好的接口.

再次说明了: 技术问题最终还是人的问题.

10877 次点击
所在节点    程序员
131 条回复
unco020511
2019-07-02 13:54:05 +08:00
一般是后端处理,前端避免数据计算和整理
lihongjie0209
2019-07-02 13:54:08 +08:00
@version 这种数据处理工作 map reduce filter 直接解决, 没什么复杂性, 下次我直接帮前端写代码
liuhuansir
2019-07-02 13:54:15 +08:00
@lihongjie0209 我能说前端展示 "2019 年 1 月 1 日" 改为 "2019-01-01",这种需求,我们的后端都愿意帮忙实现。。。可能是我们工作量都不饱和吧,人家愿意做,我总不能拦着吧
lihongjie0209
2019-07-02 13:55:00 +08:00
@liuhuansir ...........无话可说, 佩服佩服
guorui112
2019-07-02 13:56:19 +08:00
看和后端关系好不好,以前和一个关系比较好的后端做项目,都是抢着做,看哪边处理方便
OSF2E
2019-07-02 13:57:10 +08:00
@lihongjie0209 锅背不动了,那就不背了
version
2019-07-02 13:59:24 +08:00
@lihongjie0209 如果是后台管理最好要喷喷前端的了.不行就自己改了..后端再转..以后合并其它数据更加难..例如 table 是 5 个连表出来的数据...一个单独的 tag.都需要我转字段给他们..我就要说了..这无疑会搞垮整个 sql..后端再转多一层分明就是业务乱了.以前试过..后台管理不能让前端做话事权..能前端转数据的是最有利于以后迭代的..
15651980765
2019-07-02 13:59:34 +08:00
我司前端没人权,此类工作都是前端在做,后台大部分时间都是直接给全量数据,前端要啥数据,自己遍历去取然后拼成想要的格式,我已经不止一次吐槽过后台了,然并卵!
will0404
2019-07-02 14:00:30 +08:00
@lihongjie0209 你举的例子是两类问题。
要列表还是要树,后端做。
时间的格式,前端做(后端提供时间戳满足所有场景)。
对于第一类问题我说了,你接口是根据 UI 定的,从列表换到树,想必 UI 变了吧?而且改动还不小,有什么理由不重写接口呢?
举个例子,通常接口返回的数据会有一层数据校验,在后端某个中间件上,你不打算改接口,返回的旧数据,而数据转换放在了前端,那一层服务就形同虚设了。
raynor2011
2019-07-02 14:01:56 +08:00
和显示强相关的,必须前端做啊
lihongjie0209
2019-07-02 14:02:13 +08:00
@will0404 ui 变了, 但是数据还是那些数据
527944441
2019-07-02 14:02:56 +08:00
第一个谁做都行 第二个我觉得做之前应该商议一下
Caballarii
2019-07-02 14:04:23 +08:00
市场上彩笔前端太多了,培训班出来一点基本功都没有的,造成了都得后端帮忙的现状
Sapp
2019-07-02 14:07:30 +08:00
第一个问题无所谓,第二个问题得看具体情况,如果就是这一份数据需要稍微转换一下,实际谁做都可以。但是如果这个结构涉及到很多接口的调用组合然后才能拼出来,那这个接口设计就有问题,也不存在谁做的问题了。
TimPeake
2019-07-02 14:08:44 +08:00
作为前端做过类似的。
特别树形之类的复杂嵌套之类的数据,真的是后端做方便点。
后端可能几行代码解决了。 前端却需要十几行甚至几十行代码去转换格式化成理想数据,可能还有 BUG

总结:你把东西推给前端,工作流程没有错。但是出于道义,我建议你多为你的前端考虑一下
lihongjie0209
2019-07-02 14:08:50 +08:00
@Sapp 全量数据, 不存在调用多个接口的问题
deleteDB
2019-07-02 14:09:23 +08:00
第一个问题 后端做 如果有一天需要分页全表排序 前端是做不了的 还不如现在后端就做了
第二个问题 谁做都可以 数据量大推荐后端做

感觉没什么代码规范 要不然至少不应该有第一个问题

我是前端
lizz666
2019-07-02 14:09:30 +08:00
让我想起了上个项目,涉及到腾讯广点通区域定向和今日头条区域定向数据,这两个平台返回的数据结构并不一致,我前端有个树形结构,需要按我树形结构格式给我数据。
头条的数据由于是死的,官方文档上有,我直接在前台写死处理好了。腾讯就比较 fuck 了,必须通过腾讯的接口才能拿到那么多数据,一开始,嫌烦,让后端帮我做,结果,数据太多,接口超时,后来实在没辙,还是交给我前台来处理了。
keikeizhang
2019-07-02 14:09:53 +08:00
和 demo 操作没有关系的数据处理一律是后端的工作
lihongjie0209
2019-07-02 14:11:05 +08:00
@TimPeake
同样的逻辑用 java 写和用 js 写代码量不会有太大的差距
后端实现的唯一好处在于标准库比较丰富, 静态检查比较严格.

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

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

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

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

© 2021 V2EX