前端后端的分割应该是靠代码运行的位置(客户端、服务器)划分还是靠业务逻辑(随界面变动的就是前端逻辑)划分

2020-12-28 17:41:09 +08:00
 chengs
比如,url 路由表是前端还是后端,是靠位置定义的前后端还是靠业务定义的前后端。
那么这个路由表是前端程序员去随时跟着产品更改,还是后端程序员去维护。(这里面还暗含一个问题就是实际上说是后端程序员但是你在写前端相关的代码,比如服务器渲染模板)。

不要抠字眼,我想我表达的主要矛盾大家应该看的出来。
2040 次点击
所在节点    问与答
37 条回复
chengs
2020-12-28 19:24:44 +08:00
@avastms 听着像 php,问题现在的 nginx 只做虚拟服务器,真的路由在 mvc mvvc 框架里,而且除了 spa,这个 c 都是在后端语言运行时运行。
chengs
2020-12-28 19:25:44 +08:00
@raaaaaar 这一串下来应该有铺垫了不少内容了。你是觉得大家都是傻子吗?
Cbdy
2020-12-28 19:26:25 +08:00
@chengs 如果是前后端分离(通常为 spa ),前端为什么要改 java/python 代码?后端只对前端提供 api,前端用 ajax 调就可以了。至于路由,当然是在浏览器完成,可以用基于 location.hash 的路由或者基于 history api 的路由
chengs
2020-12-28 19:33:47 +08:00
@Cbdy 我明白你的意思。spa 是职责明确很多(但是仍然有页面专用接口的存在,页面显示内容变动,接口需要跟着改动。如果严格,那么应该是后端写 sdk,前端 rpc 调用这个逻辑)。现在我的问题是一般化这个问题。就如标题写的那部分,在服务器里运行的页面相关的逻辑应该是谁负责。通俗点服务端渲染是谁去做。
Cbdy
2020-12-28 19:39:31 +08:00
@chengs
我认为是都可以做,不过最好由前端做,后端把结构化的配置(通常为 json )下发一下,然后前端根据这个配置动态 render 出对应的页面片段
当然,也可以服务端直接返回一个 html 片段,前端直接拿来用,但不太符合前端的分离的初衷和前后端接口交互的一致性
chengs
2020-12-28 19:43:26 +08:00
@Cbdy 下发的那个页面 url 是谁管,运行时是什么语言
Cbdy
2020-12-28 19:45:44 +08:00
@chengs 后端只是增加了一个下发配置或页面片段的 api,和前端路由没有关系
避免用 url 这种模糊不清的词语,说后端 api 或者前端页面路由
eason1874
2020-12-28 20:12:02 +08:00
我的理解,后端就负责功能实现,给前端功能交互提供支持。

前端说我需要一个用户信息 API,后端就整个信息 API,改版了说需要一个权限 API,后端就整个权限 API 。

前端 URL 路由怎么设计就是前端的事,后端 API 是按功能提供 API,不是按页面。
opengps
2020-12-28 20:52:06 +08:00
以运行环境来区分,运行在服务器上的逻辑,属于服务端,运行在浏览器的逻辑代码,属于前端
oott123
2020-12-28 22:58:13 +08:00
服务端渲染当然是前端做,你指望只会写后端的人帮你调渲染么,不存在的。

当然大厂的话可能会分到更加细分的工种做。
chengs
2020-12-28 23:35:30 +08:00
@oott123 不是整个页面。header footer 那种。你后端调优或者写数据交集之类的事情的时候,页面改动了,你只好停下来给他们改一改让他们看看效果。
oott123
2020-12-29 00:17:38 +08:00
现代前端,几乎是整个页面和前端路由都归前端管——前后端分离+服务端渲染( SSR )

你说的那种混在一起的写法是过去的故事了,你们都在一个仓库干活,就别分什么前后端了,其实都是一个岗位
chengs
2020-12-29 07:13:30 +08:00
@oott123 你说的是 nodejs koa 这种。前端人员什么心态,这里面有个 server 啊
Sapp
2020-12-29 10:26:23 +08:00
@chengs 我觉得你根本就没搞懂现在的前端,我感觉你不像是没开发经验,但是问出的问题确实很离谱,感觉偏离这个时代有点远。我说的只负责接口一点毛病都没有,后端只负责接口你说路由给谁管?产品要改显示的数据你要改你的内容和前端又有什么关系?你改了前端拉接口不是自然就是新数据?尤其是你说的路由给前端导致前端要去改 java 代码,这还叫前后端分离吗 我觉得你还是需要去看一下。还有下发页面 url 这个问题,这不前端直接打包之后运维起 NGINX 管吗,这肯定不会让后端去分发路由,当然就算你后端想管,那也是给全部链接都转到前端去。就算就算要搞服务端渲染,那也是前端用 node 搞,跟你后端还是没有关系,后端依旧是只提供接口
Sapp
2020-12-29 10:26:54 +08:00
@chengs 你为什么就非要觉得要有个 server 要插在前后端中间呢? 这点我就很不明白
chengs
2020-12-29 10:37:52 +08:00
@Sapp
chengs 15 小时 6 分钟前 via iPhone
#avastms 听着像 php,问题现在的 nginx 只做虚拟服务器,真的路由在 mvc mvvc 框架里,而且除了 spa,这个 c 都是在后端语言运行时运行。
raaaaaar
2020-12-29 11:02:56 +08:00
不知道你怎么想的,一个把数据隐藏起来写成接口,一个调接口用,所谓的前后端就是这么个分工咯,不然呢?本来就不是一个严格的定义。

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

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

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

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

© 2021 V2EX