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

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

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

  1. 数据整理问题

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

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

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

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

11751 次点击
所在节点    程序员
131 条回复
tingfang
2019-07-02 15:22:25 +08:00
都可以,我觉得后端做更好一些,前端如果是 APP 或者小程序,逻辑改动还需要审核发布,后端做的话改起来会更方便些?
santom
2019-07-02 15:24:20 +08:00
数据量不大 随便都可以吧 数据量稍微大点 还是后台做吧
45HXlKzal6W56zUJ
2019-07-02 15:26:10 +08:00
用户量大的话,后端做就不好了
Hakka
2019-07-02 15:27:08 +08:00
排序问题
一般是我后端做
数据整理问题
一般是我后端做(同三楼)
dongxiao
2019-07-02 15:30:32 +08:00
看是否改动频繁吧,如果改动频繁前端做比较好点,不然每次调整页面都需要改动接口,如果基本定下来不会动了,后端改起来还是要快点,话说公司最近的一个项目包括页面显示的文字都是我这接口返回的,就是 No.1 xxxx No.2 xxxx 这种,前后端还是要多多配合,都是为了进度不是嘛
zsy979
2019-07-02 15:51:31 +08:00
到底由谁做?没人能给最终结论
我是后端前些时刚经历了因为数据结构问题跟前端扯皮。。
树形结构转换在扯皮过程中都是小事,也算是头一次遇到糟心的前端可能他也是这么想的。
现在好了没必要因为这种问题去扯皮,就算说服他让他转换又能怎样,他可能还会想这个煞笔这都不会或者这都懒得做
x7395759
2019-07-02 16:56:11 +08:00
此时就需要多一个层了
mmuggle
2019-07-02 17:07:09 +08:00
GraphQL
NotNil1
2019-07-02 17:07:17 +08:00
树的话我一般每个节点会额外给一个排序字段,层级字段。
xianxiaobo
2019-07-02 17:14:20 +08:00
建议分成三个职位,一个后端,只做数据库的增删查改,一个前端,只做页面渲染,交互和样式书写,还有一个中端,专门做数据转换,将前端传入的数据转换为后端想要的数据,将后端返回的数据转换为前端想要的数据,以此解决此类扯皮问题。
MoRun
2019-07-02 17:37:30 +08:00
这个得看情况
如果你的后端很重,有很多任务要做,比方说后端是一个负载均衡的网关,或者需要对个多展示层,那展示层的数据需要给前端做,或者再加一层数据处理层来专门做这个事情,比如说 GraphQL
如果你的后端仅仅只是简单的增删查改,我觉得还是尽量配合前端比较好
CoCoMcRee
2019-07-02 17:49:24 +08:00
我这里 后端大多接口都会提供排序字段, 支持正反排序.
最外层肯定是树形结构.
{
"success": true,
"errorCode": "",
"message": "",
"data":

}
CoCoMcRee
2019-07-02 17:51:13 +08:00
data 里头才是前端要的数据
而且 ,谁说只有后端才做数据校验

我这里前端对后端返的数据也要做数据校验的哦, 不同接口,校验的字段和结构都不一样哦.
bdnet
2019-07-02 18:03:18 +08:00
1. 问题不应该是 没有事先约定好接口数据结构?

2. 业务逻辑尽量收拢在一个地方,也就是后端,后端可以加一成,处理数据转换
yufeng0681
2019-07-02 21:24:42 +08:00
1、还缺个组长,定义接口数据按什么排序返回;
2、后端做得越厚,前端就越简单,多个终端做起来一致性也容易保证。
3、你想做得灵活一点,就让前端传排序参数,支持多种排序方法返回数据。
petelin
2019-07-02 21:35:35 +08:00
屁大点事 这都无所谓 当时文档怎么写的就怎么改

后期需求就看谁的老板硬

这都无所谓有什么好讨论的
nidaye999
2019-07-02 21:44:54 +08:00
后端做,这么弱智的问题
a852695
2019-07-03 01:58:15 +08:00
尽量后端做,前端核心是交互和数据可视化,你非觉得 chrome 性能好到比你服务器还快,那你就前端做吧
a86356
2019-07-03 06:22:21 +08:00
后端做,数据结构后端做,给前端需要的数据结构即可。前端也一样的,提交数据的时候给你需要的数据结构。没什么好说。前端主要是交互。而且排序什么的,后端处理一 order 的问题,前端做还要遍历再排序,浪费时间。前端要做的是一些小的数据转换显示,比如时间搓,一些状态,1.2.3 转成对应文字。
a86356
2019-07-03 07:53:19 +08:00
@hedamao9999 说的很对,都做过考虑会比较周全。要不然一叶障目

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

https://yangjunhui.monster/t/579241

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

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

© 2021 V2EX