[ {"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 ![]() 请求一多压力就上来了?请量化分析。 |
![]() | 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 ![]() 有条件可以上 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 35aZ4P8mT576683q 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 要么你自己在前后端加一层做处理。 |