如何看待后端接口带出数据库全部字段

2022-04-13 16:10:43 +08:00
 mokevip

直接从数据库中取得模型,不需要的值就是一堆 null

如果是需要额外处理的字段,就在原本对象内放一个 params 的对象,再嵌套一层放处理的数据

能因为一个值需要转换一下数据而扯皮,哪怕是取模于 10 这种简易操作也要前端来做

11367 次点击
所在节点    程序员
128 条回复
m16FJ06l0m6I2amP
2022-04-14 17:28:55 +08:00
这些 null 再数据库是不是 None,数据库没给默认值吗
encro
2022-04-14 17:32:51 +08:00
@NjcyNzMzNDQ3

取模应该放在前端还是后端?

我的界限是:

1 ,业务展示要求,一般放前端,但是非常大可能性经常变得,放后端;
2 ,业务逻辑需求,一般放后端,除非前端运算能带来体验大幅提升且无发作用;

所以这是一门艺术。
fuchish112
2022-04-14 17:51:06 +08:00
一种是淡化后端逻辑,前端根据不同平台 h5/app ,个性化输出
一种是后端整理逻辑,前端纯展示

当然现实中两者的边界,可能是动态变化的。
lovelylain
2022-04-14 18:46:29 +08:00
看场景吧,如果你这就是个内部后台管理系统,直接维护 DB 的,这么操作不很正常么?或者是一个后台内部公共服务,面向的业务会用到哪些字段是不确定的,怎么去砍字段?如果是对接前端的业务接口,就应该按业务需要重新定义一下。
notwaste
2022-04-15 00:11:20 +08:00
取模于 10 这个个人觉得交给前端做好些
这个 null 返回挺纠结的,不处理确实不安全容易暴露表结构以及占用传输带宽,但是一个查询接口就需要写一个对应的 VO 的话会不会又导致项目过于冗余庞大
Anivial
2022-04-15 19:51:09 +08:00
结论:少一个架构师

1. 在做业务之前没有定义好 API 的输入与输出,如果事先定义好了,后端专心返回对应数据(即便是多了一些数据,到时候的性能问题排查也肯定是后端的问题),前端专心根据 mock 设计页面逻辑(没必要纠结多个字段,少个字段)

2. 开发流程,从你拿到后端接口数据才抱怨就很明显知道了,前端要等后端开发完接口才能规划数据,完全没有必要啊,就拿你的取模来说,result = response.data.datamod 和 result = response.data.datamod % 10 两个区别很大吗?何必一定要完完整整的你要什么给你什么呢?那如果有一天你要计算哈希值也先帮你算好?

简单来说,后端负责业务数据的存储,安全,稳定,一致,前端负责展示数据,解析数据,计算数据。

其实说到最后就是工作量的问题,如果需求变动,谁来改,就单单你说的取模,需求变成取模 100 ,要么后端改,要么前端改,你们要不掰个手腕?
mokevip
2022-04-16 10:55:32 +08:00
@Cielsky 他就是后端管理 = =
mokevip
2022-04-16 11:03:48 +08:00
“哪怕是取模于 10 这种简易操作也要前端来做”

只是讲我们后端不灵活的一个例子

这个问题的出现是,后端的某个状态值 1 ,2 ,3 分别对应不同状态,并且告诉我,11 、12 、13 也是相同的状态,你取模一下 10 就行了

我不同意是因为
1. 前端并不需要知道 1 和 11 的区别,所以前端只需要知道 1 个值对应一个状态就行了
2. 因为该项目是多端项目,接口存在复用,如果这种取模于 10 存在多个项目中,会很难管理

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

https://tanronggui.xyz/t/846763

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

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

© 2021 V2EX