关于前端工作的一些疑惑

2019-04-11 00:36:15 +08:00
 ericgui

首先呢,我们后端写的 API 太屎了(一年 C#经验,转 Java 了),也就是说,后端给的数据,和前端用户交互的时候产生的数据产生太大的 gap,我每天都在转化数据,把后端来的数据,重新梳理成前端能用的结构。 (当然,和业务本来就很复杂也有关,也不能完全怪后端。)

老板尚未发现后端 API 太屎,但是他至少认可了这里有很大的 gap,需要我来抹平。

于是我就想起来了,阿里巴巴据说是利用 nodejs,写中间层,就是聚合各种后端 API,然后封装成一个对前端更友好的 API。

大概是这样的,可能记忆不太精确。

所以请教各位,这样的操作是否是常规操作?

如果是,我就考虑考虑用 nodejs 写个中间层,这样前端的代码会更优雅一些,性能和可维护性应该稍微好一些。

至于为啥不要求后端写对前端更友好的 API ?原因我就不说了,指望她,还不如指望我自己。 她设计的数据库,我看了一下结构,比鸡窝还乱,但我没说话,毕竟不好对别人的工作指手画脚。

5484 次点击
所在节点    程序员
56 条回复
yhxx
2019-04-11 11:38:28 +08:00
是常规操作,但是我觉得除了 KPI 和提升自己之外没什么好处

为了处理数据,你在浏览器里一样能做

出问题浏览器里还能调试一下,用 node 搞就只能翻日志了吧
ianva
2019-04-11 11:48:20 +08:00
另外在现在微服务及面向多终端的背景下,后端的 API 必然不会和前端耦合的,而且前端也会面对不同服务的接口,这种情况下 BFF 是有必要的。
november
2019-04-11 12:09:54 +08:00
所以大家都知道 gap 是什么意思吗?。。。
NaVient
2019-04-11 12:44:53 +08:00
在现在服务端背景下后端的数据和前端业务数据有出入是相当正常的吧....
现在后端提供的是可供多人调用的标准数据,前端根据自己业务整理数据才是“常规操作吧“
yorkding
2019-04-11 13:00:15 +08:00
@november 隔阂 /嫌隙 很好理解啊。
abcbuzhiming
2019-04-11 13:11:45 +08:00
我认真的看了一下,我觉得楼主完全没说清楚为啥叫“接口屎”。因为他给你的数据,必须你在前端再转一遍才能用,所以说屎?那我告诉你,前端转换层从来都是客观存在的,无论你用什么,说的再天花烂坠,转换层一定在某种程度上存在。无非这个工作是你来做还是他来做,他来做,那就要涉及后端的计算资源问题,因为后端资源总是稀缺的,很多中小企业是不愿意付出过多计算资源的,所以这个工作就被转嫁到客户的电脑或者手机上了,因此你以它的数据需要转换才能用就说他屎我觉得是不客观的。后端首先要保证的是可用性,其次是性能,最后才是,能不能让前端绑数据时觉得很开心。至于你说上个 Node,那么又涉及一个问题,多出来的计算资源谁出啊?
另外楼主已经觉得对方设计的数据库结构跟鸡窝一样,却打算“自己解决”而不主动在会议上提出,作为技术人员,虽然不违反职业道德,但是你不算尽职。有些问题是一定要及时指出的
november
2019-04-11 14:03:25 +08:00
@yorkding
看来确实是我英文不好。。。。
HustLiu
2019-04-11 14:12:39 +08:00
如果不是本身就有一套 node 服务体系,个人建议不要接入……洗数据的事儿,client 做不就完了么,能比放在服务端慢多少?你是打算在 node 层做缓存吗?还是说计算量大到会影响客户端速度?那不就更不适合用 node 来做了……
whypool
2019-04-11 14:23:15 +08:00
正常操作,没啥喷的

客户端自己去筛选想要的数据
zhangalong69
2019-04-11 17:01:17 +08:00
领域驱动设计了解一下
v2chou
2019-04-11 17:11:18 +08:00
后端直接 select * from XXX ?
chairuosen
2019-04-11 17:19:02 +08:00
缺一个前端 model 层
swaggeek
2019-04-11 17:29:52 +08:00
看需求像是 graphQL
doommm
2019-04-11 17:30:40 +08:00
我之前在 v2 发过一个类似的问题,对于每项业务我都得写 adapter 来转换请求及响应的数据
dengshen
2019-04-11 17:34:51 +08:00
可是前端连服务器账户都没有啊!你 node 服务部署在哪呢?
learnshare
2019-04-11 17:35:47 +08:00
找人定 API 文档,然后再开发,这样就可以名正言顺要求后端了
a494836960
2019-04-11 17:44:23 +08:00
见过后端给的接口数据都是 ID 的嘛!想要 name 需要自己查出来在匹配上去
wenhainan
2019-04-11 17:47:33 +08:00
兄弟啊,我都替你感到憋屈
randyo
2019-04-11 18:12:12 +08:00
难道不是前端要什么数据后端给什么数据吗?本来只要很少的数据和简单数据结构,后端直接把整个 dao 层数据结构丢出来,数据乱七八糟,还要你自己去转换,流量也翻了几倍😙😐
66beta
2019-04-11 18:36:10 +08:00
你推动下,上 graphql 吧

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

https://www.v2ex.com/t/553912

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

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

© 2021 V2EX