首页UE如图
如果是我我会怎么设计这个首页的接口功能。
一、接口设计
首先与前端约定好有哪些卡片类型,以及默认样式。
然后将页面分成若干个卡片,在这个首页上提供2个接口
1.获取页面卡片信息,告诉前端接下来将会展示哪些卡片,你需要依次申请接口获取相应参数。
2.统一接口,根据不同参数获取不同的卡片信息。
二、简单抽象
因为只有1个具体的接口获取数据,那么后端数据结构必须进行抽象设计。
每个卡片有3种东西组成分别是:1.Card、2.Layer、3.Item
3个类以has-A的关系存在,就是说Card中可以有多个layer,每个Layer中有多个Item,这样我只需要3个类即可表达前端页面上所需要的数据,
"Card":{[
"Layer1":{
"Item1":{"xxxxx"},
"Item2":{"xxxxx"},
"Item3":{"xxxxx"}
},
"Layer2":{
"Item1":{"xxxxx"},
"Item2":{"xxxxx"},
"Item3":{"xxxxx"}
},
"Layer3":{
"Item1":{"xxxxx"},
"Item2":{"xxxxx"},
"Item3":{"xxxxx"}
}]
}
就这么简单
三、吐槽
我就是个小小小小的测试,目前这个项目前后端用了一个聚合接口,导致这个接口巨大,数据量0.5MB,相应时间8-9s,算上前端对json解析,那真是不得了。
目前已知项目里的问题:
1.首页这种响应速度,数据量不说,光一个异常情况处理就很麻烦,这个接口后端/前端都需要做很多,一个没弄好,整个首页就看不到了。
2.后端数据的耦合,导致很多不必要的麻烦,必须等,必须一次性处理。
3.由于数据一次性到达,前端的渲染压力也大
四、干他N的
我小时候老师总说,傻子过年瞧街坊,这么多年了,没自己写过,还没看过人家APP啥样吗?第一天告诉你设计不合理,和我battle半天,后面自己都觉得慢在哪里瞎优化。后端告诉我用里异步处理叭叭叭,我说就是CompletableFuture呗,可以用但是没必要。
我告诉后端你现在先别动了,9号要拿去送审过合规,现在先保能用,再说优化,就算要优化让前端异步请求就行了,利用前端的异步功能,动态的去加载渲染就行了。后端不听,就自己偷摸的优化,加缓存,加异步,现在好了,不光慢,卡,功能还是错乱的。我还能说啥,大家都30多岁的人了,真怼两句难听的谁脸上也挂不住。
哎,我自己也是个废物,学历没有,混进一个像点样的公司我也不容易,为了这点钱只能忍着,不然早走了。
我始终认为代码是一个思想的艺术品,被人破坏始终是让我心神不安。