[
{"date":"2019-01-01","name":"sally","data":"123"},
{"date":"2019-01-02","name":"jack","data":"123"},
{"date":"2019-01-03","name":"jacky","data":"123"}
]
{
"2019-01-01":[{"name":"sally","data":"123"}],
"2019-01-02":[{"name":"sally","data":"123"}],
"2019-01-03":[{"name":"sally","data":"123"}]
}
1
sagaxu 2020-01-14 18:06:30 +08:00 via Android 1
请求一多压力就上来了?请量化分析。
|
2
BluesQu 2020-01-14 18:08:06 +08:00
一般出接口之前都会沟通好 大概的结构 ,所以基本上不会出现上面你贴出来的那样子的结构的差异,如果真的需要转换了,就相互之间再沟通了。按照以往的工作经历,遇到此类问题:前端也有处理过,后端也有处理过。不会划分的很细致谁来解决。
|
4
optional 2020-01-14 18:19:30 +08:00
这种程度(stateless)的转换,前后端做都毫无压力啊。
|
6
ianva 2020-01-14 18:29:34 +08:00 1
有条件可以上 graphql, 就算不上 graphql 前端也需要有自己的领域模型,
只要把接口 map 到前端的领域模型上即可, 前端应该基于自身的领域模型去开发,而不是面向后端 api 编码。 前后端应该在业务开始前定好 schema,前端需要确定领域模型。 写组件首要的是定接口,也就是 props,了解视觉和交互模型后,就应该确定组件的 props 接口和组件不应该有依赖,组件对接的页面容器上的业务逻辑上对接前端领域模型的 如果做不到以上,这个项目前端没有维护的可能性,前后端耦合严重 |
7
Demeter 2020-01-14 18:29:54 +08:00
既然楼主提到划分职责的话 我的建议是后端处理数据
|
8
Akkuman 2020-01-14 18:31:47 +08:00 via Android
我倾向于第一种
|
10
ianva 2020-01-14 18:42:47 +08:00
@lqw3030 如果有相关的 fake server,原则上前后端不需要沟通,除了在定 schema 的时候,前端基于 fake 的数据基于领域模型完成项目,对接也只是很简单的事情
|
11
sagaxu 2020-01-14 18:52:38 +08:00 via Android
抛开剂量谈毒性都是耍流氓,有区别是多大区别?大到能成为必须不能放后端的理由?@lqw3030
|
12
M003 2020-01-14 18:57:16 +08:00
我是前端.我会采用第一种.
后端并不只服务于前端,也会别的服务会调用. 第一种.输入结构.看起来也清晰明了.各参数含义明确.方便各业务自行处理. 第二种,也就减轻了前端循环的一层.但别的服务可不会要这种结构.. ------- 我猜是做图表展示的数据结构吧? ``` var obj = {}; arr.forEach(item=>{ let {date,name,data} = item obj[date] = [{name,data}] }) console.log(obj) ``` ------- 在写的过程中,发现含义都变化了. 第一种,一天对应一条数据 第二种,一天对应一个数组? 在我不长的开发时间中,理解只要是数组,就有可能包含多条数据 |
14
liberty1900 2020-01-15 00:37:03 +08:00 via Android
arr.reduce((acc, {date, ...others}) => {
acc[date] = [{...others}] }, {}) |
15
dongliangnerd 2020-01-15 10:13:26 +08:00
@ianva 太难了,不是所有团队都有资源和意愿这么做
|
16
ianva 2020-01-15 12:15:56 +08:00
@dongliangnerd 不是资源和意愿的问题,而是有没有能力,这个架构下开发效率会提升很高,而不是消耗资源,特别是基于 ts 开发,项目的质量不是一个级别的
|
17
dongliangnerd 2020-01-15 13:26:38 +08:00
@ianva 你说的这些,除了前端-> 数据层面的映射,其他的组件、ts 还真没啥能力的要求
|
18
raynor2011 2020-01-15 22:28:07 +08:00 via Android
第一次沟通接口的时候定好,后面不会再因为格式的问题改,因为后端和 UI 不应该强烈耦合,不可能你展示方案变一次,后端接口就跟着动一次
|
19
cs3230524 2020-01-19 12:09:08 +08:00
当然是后端爹说什么就是什么了
|
20
cs3230524 2020-01-19 12:09:37 +08:00
要么你自己在前后端加一层做处理。
|