1
OldActorsSmile 2020-12-28 18:02:02 +08:00
我是一个独立开发者,前后端都自己开发,但是我前后端也是分离的,前端纯 html,通过 ajax 调用自己后端的 api 。
前端 webpack,后端 nodejs |
2
jifengg 2020-12-28 18:05:01 +08:00
我个人的话,习惯以“代码运行在什么位置”来判定。当然,服务端渲染的话,渲染的那部分应该算前端,比如写模板,而从数据库里拿出数据去给模板渲染的,算后端。应该没有明确的定义吧。看看楼下怎么说。
|
3
chengs OP @OldActorsSmile 路由算前端还是后端
|
4
Sapp 2020-12-28 18:06:58 +08:00
前后端分离的状态下,后端只负责接口,其他全部给前端就行了
|
5
chengs OP @jifengg 你接近问题了,是页面 call 函数取得数据来填模板还是后端带变量 call 模板程序生成页面。正确应该是哪个。
|
6
chengs OP @Sapp 你说的接口在现实实践里不过是一个没有渲染的页面而已,产品更改要显示的数据,你的接口给出的内容都要跟着改。你想太浅了。问题没有回答,路由是前端管还是后端管。
|
7
OldActorsSmile 2020-12-28 18:13:21 +08:00
|
8
EPr2hh6LADQWqRVH 2020-12-28 18:15:42 +08:00
写面向终端用户的代码,操纵 UI 展示,影响终端用户体验,定义为前端;
写系统内部逻辑的代码,操纵数据库和其他内部组件,影响组织内部运行成本,定义为后端; |
10
egglin 2020-12-28 18:20:45 +08:00
中台和后台吧,中台算后台的后端,后台算中台的前端?
|
11
chengs OP @OldActorsSmile node.js 里面的 /index,/profile 是谁要求添加,是谁去写路由,是谁负责具体页面的渲染,是谁负责填写模板的数据。按你说的方案,api 是给出的是一条 record 还是 api 只提供一个域的数据,一条 record 是前端在浏览器拼接多个接口数据。
|
13
luob 2020-12-28 18:25:15 +08:00 via iPhone
我好像听明白怎么回事了,要不要 @一下那个男人(逃……
|
14
renmu123 2020-12-28 18:25:28 +08:00 via Android
在前后端分离的情况下,写浏览器端代码的就是前端,写服务器端代码的就是后端。至于你把业务代码放浏览器端还是服务器端都可以,只是浏览器有着天生安全问题,大部分人会选择放在服务端。至于你说的路由表问题,路由表不会出现致命性安全问题,浏览器端愿意写就扔给他们了。如果你还要讨论为分离情况的话,那你就自己思考一下。前端和后端不是能严格给出定义的东西,会随着时代发展而发展
|
15
chengs OP @renmu123 一个产品决定根据运营数据对产品进行改造,需要将原来的 2 级路由改成 3 级,只是用户操作产品的路经和显示改变,功能没有改变(暗指后端逻辑不变)。过了一周,新的运营数据出来了,产品决定再度调整路径和界面(后端逻辑不变)。现在你觉得路由表应该谁写,是随便丢个人写吗?
|
17
Cbdy 2020-12-28 19:08:48 +08:00 via Android
前后端分离的情况下,路由归前端管
前后端不分离的情况下,都不分离,哪有什么前端后端 |
18
chengs OP @Cbdy 说的好,路由归前端管。那么前端自己去改 java 代码还是 python 代码。这个路由应该是运行在什么运行时。
|
19
EPr2hh6LADQWqRVH 2020-12-28 19:20:13 +08:00
啧。。。。
前后端分一下工,前端自己管自己的路由好了,后端 nginx 类似的东西统一返回前端的程序,浏览器里面再去解开前端路由。 后端管自己的 API 路由,用户访问的都是前端路由,这样就分开了,各管各的分开发布 |
20
raaaaaar 2020-12-28 19:23:42 +08:00 via Android
一个调接口,一个写接口呀
|
21
chengs OP @avastms 听着像 php,问题现在的 nginx 只做虚拟服务器,真的路由在 mvc mvvc 框架里,而且除了 spa,这个 c 都是在后端语言运行时运行。
|
23
Cbdy 2020-12-28 19:26:25 +08:00 via Android
@chengs 如果是前后端分离(通常为 spa ),前端为什么要改 java/python 代码?后端只对前端提供 api,前端用 ajax 调就可以了。至于路由,当然是在浏览器完成,可以用基于 location.hash 的路由或者基于 history api 的路由
|
24
chengs OP @Cbdy 我明白你的意思。spa 是职责明确很多(但是仍然有页面专用接口的存在,页面显示内容变动,接口需要跟着改动。如果严格,那么应该是后端写 sdk,前端 rpc 调用这个逻辑)。现在我的问题是一般化这个问题。就如标题写的那部分,在服务器里运行的页面相关的逻辑应该是谁负责。通俗点服务端渲染是谁去做。
|
25
Cbdy 2020-12-28 19:39:31 +08:00 via Android
@chengs
我认为是都可以做,不过最好由前端做,后端把结构化的配置(通常为 json )下发一下,然后前端根据这个配置动态 render 出对应的页面片段 当然,也可以服务端直接返回一个 html 片段,前端直接拿来用,但不太符合前端的分离的初衷和前后端接口交互的一致性 |
27
Cbdy 2020-12-28 19:45:44 +08:00 via Android
@chengs 后端只是增加了一个下发配置或页面片段的 api,和前端路由没有关系
避免用 url 这种模糊不清的词语,说后端 api 或者前端页面路由 |
28
eason1874 2020-12-28 20:12:02 +08:00
我的理解,后端就负责功能实现,给前端功能交互提供支持。
前端说我需要一个用户信息 API,后端就整个信息 API,改版了说需要一个权限 API,后端就整个权限 API 。 前端 URL 路由怎么设计就是前端的事,后端 API 是按功能提供 API,不是按页面。 |
29
opengps 2020-12-28 20:52:06 +08:00 via Android
以运行环境来区分,运行在服务器上的逻辑,属于服务端,运行在浏览器的逻辑代码,属于前端
|
30
oott123 2020-12-28 22:58:13 +08:00
服务端渲染当然是前端做,你指望只会写后端的人帮你调渲染么,不存在的。
当然大厂的话可能会分到更加细分的工种做。 |
31
chengs OP @oott123 不是整个页面。header footer 那种。你后端调优或者写数据交集之类的事情的时候,页面改动了,你只好停下来给他们改一改让他们看看效果。
|
32
oott123 2020-12-29 00:17:38 +08:00 via Android
现代前端,几乎是整个页面和前端路由都归前端管——前后端分离+服务端渲染( SSR )
你说的那种混在一起的写法是过去的故事了,你们都在一个仓库干活,就别分什么前后端了,其实都是一个岗位 |
33
chengs OP @oott123 你说的是 nodejs koa 这种。前端人员什么心态,这里面有个 server 啊
|
34
Sapp 2020-12-29 10:26:23 +08:00
@chengs 我觉得你根本就没搞懂现在的前端,我感觉你不像是没开发经验,但是问出的问题确实很离谱,感觉偏离这个时代有点远。我说的只负责接口一点毛病都没有,后端只负责接口你说路由给谁管?产品要改显示的数据你要改你的内容和前端又有什么关系?你改了前端拉接口不是自然就是新数据?尤其是你说的路由给前端导致前端要去改 java 代码,这还叫前后端分离吗 我觉得你还是需要去看一下。还有下发页面 url 这个问题,这不前端直接打包之后运维起 NGINX 管吗,这肯定不会让后端去分发路由,当然就算你后端想管,那也是给全部链接都转到前端去。就算就算要搞服务端渲染,那也是前端用 node 搞,跟你后端还是没有关系,后端依旧是只提供接口
|
36
chengs OP @Sapp
chengs 15 小时 6 分钟前 via iPhone #avastms 听着像 php,问题现在的 nginx 只做虚拟服务器,真的路由在 mvc mvvc 框架里,而且除了 spa,这个 c 都是在后端语言运行时运行。 |
37
raaaaaar 2020-12-29 11:02:56 +08:00
不知道你怎么想的,一个把数据隐藏起来写成接口,一个调接口用,所谓的前后端就是这么个分工咯,不然呢?本来就不是一个严格的定义。
|