现在不都是前后端分离了吗?为什么 Go 好多开源项目还是前后端一起?是我理解有误吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
MX123
V2EX    Go 编程语言

现在不都是前后端分离了吗?为什么 Go 好多开源项目还是前后端一起?是我理有误吗?

  •  
  •   MX123 2021-12-09 09:41:11 +08:00 6615 次点击
    这是一个创建于 1410 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面是我在学习的两个项目,好像都是前后端一起的 https://github.com/hezhizheng/repo-image-hosting https://github.com/cloudreve/Cloudreve

    第 1 条附言    2021-12-09 10:14:34 +08:00
    谢谢,我理解错了
    wellsc
        1
    wellsc  
       2021-12-09 09:44:37 +08:00
    一个三十多的项目说明不了什么
    qW7bo2FbzbC0
        2
    qW7bo2FbzbC0  
       2021-12-09 09:45:22 +08:00
    前后端分离开发方便,如果物理机部署我感觉实在是难受。
    sagaxu
        3
    sagaxu  
       2021-12-09 09:47:19 +08:00 via Android
    第一个没看,第二个是前后端分离的
    MX123
        4
    MX123  
    OP
       2021-12-09 09:47:20 +08:00
    @wellsc Cloudreve 不少了吧
    qW7bo2FbzbC0
        5
    qW7bo2FbzbC0  
       2021-12-09 09:48:06 +08:00
    前后端分离我不清楚你说的是哪种,我猜一下:
    1.前后端相同的语言开发栈,用后端框架渲染。简单需求时,无需用高射炮打蚊子
    2.前后端不同的语言开发栈,打包在一起分发,一键执行。给用户带来部署上的便利
    qW7bo2FbzbC0
        6
    qW7bo2FbzbC0  
       2021-12-09 09:49:06 +08:00
    *_exporter 属于 1
    grafana 属于 2
    prometheus 原来属于 1 ,现在是 2
    zzzmh
        7
    zzzmh  
       2021-12-09 09:49:52 +08:00
    也不是绝对的,各有各的好,比如某 ZZ 搜索引擎,你用 vue 渲染,它就收录成一坨屎,用 JSP PHP ASP ,它就当个宝。没错我说的就是**的百度
    liushuangbill
        8
    liushuangbill  
       2021-12-09 09:50:12 +08:00
    Cloudreve 属于前后端分离的,只是放在一个项目里
    MX123
        9
    MX123  
    OP
       2021-12-09 09:52:41 +08:00
    @hjahgdthab750 我理解的是后端只负责提供 Api ,前端语言不限单独部署可以是 web ,iOS ,安卓,PC 客户端,
    lp7631010
        10
    lp7631010  
       2021-12-09 09:53:02 +08:00
    @zzzmh 难不成谷歌会把 vue 网站收录当成宝?你行你上得了
    yEhwG10ZJa83067x
        11
    yEhwG10ZJa83067x  
       2021-12-09 10:01:12 +08:00
    楼主是认为基于接口开发,后端只负责提供接口吧
    lwch
        12
    lwch  
       2021-12-09 10:02:51 +08:00
    前后端分离是指后端提供 API 接口给前端动态渲染页面,而不是传统的整个页面由后端负责渲染完了返回给前端,前后端代码在一个项目里不代表他不是前后端分离的。
    wangxin13g
        13
    wangxin13g  
       2021-12-09 10:07:54 +08:00
    好多开源项目 X
    换个语言写的 CRUD 业务代码 O
    我也不是很明白题主说的这两个项目用 golang 有什么意义,
    而且 github 上的个人维护的中文项目好像不太值得你花时间的样子。
    keepeye
        14
    keepeye  
       2021-12-09 10:08:45 +08:00
    第二个是前后端分离的,前端在 https://github.com/cloudreve/frontend ,可能是 git submodule 方便管理
    wu67
        15
    wu67  
       2021-12-09 10:13:23 +08:00
    上面说的搜索引擎的...本身 spa 就不利于 seo...想要一个好的效果, 那就 ssr 呀, 而且大部分情况下, 都是搜出主站主页, 把这个页面做 ssr 就好了
    AaronLiu00
        16
    AaronLiu00  
    PRO
       2021-12-09 10:27:16 +08:00 via iPhone   3
    @wangxin13g 第一个不清楚,第二个选用 Golang 的原因是基于以下需求:
    1.跨平台交叉编译方便;
    2.编译后产生的 binary 无其他链接库依赖,能做到 click-to-run ;
    3.异步编程方便,Cloudreve 会有大量的任务需要异步处理;
    4.有成熟且简洁的 web 框架。
    最终选择了 Golang ,当然你可以说这只是一个 preference 的问题。

    另外 Cloudreve 的前后端分离不是那么彻底,比如:前端资源嵌入后端的 binary ;对于 index.html 的请求还是会经后端类似“模板渲染”的处理,但这些妥协其实都是为了能做到 click-to-run.
    C603H6r18Q1mSP9N
        17
    C603H6r18Q1mSP9N  
       2021-12-09 12:02:06 +08:00
    首先 所有框架 都可以输出 json 和 html ,如果你需要前后分离,返回 json 即可;如果不需要输出 html 即可;不用特别纠结,我们就用代 UI 的框架作为接口层,没啥问题。
    DeWhite
        18
    DeWhite  
       2021-12-09 12:24:22 +08:00 via iPhone
    有些项目不是为了云端部署准备的,可能只是内部服务器应用,不需要分离。
    daliusu
        19
    daliusu  
       2021-12-09 12:47:12 +08:00
    前后端分离跟在不在一起没影响,不是非的分两个仓库才是分离。

    我还见过有些 go 为了部署方便会把前端也给一起打包二进制去,但是这跟分离不分离也没关系。分离是从开发和数据获取渲染的角度分而不是部署的时候分开
    snowlyg
        20
    snowlyg  
       2021-12-09 14:49:45 +08:00
    你应该弄清楚前后分离的概念
    kerro1990
        21
    kerro1990  
       2021-12-09 20:17:59 +08:00
    解藕和分离性质不一样吧
    buffzty
        22
    buffzty  
       2021-12-09 22:41:04 +08:00
    @zzzmh @lp7631010 spa 收录都是小问题,不用 ssr,后台开个 puppetter, 搜索引擎全反代过去
    sslyd
        23
    sslyd  
       2021-12-09 23:01:16 +08:00
    弱弱的问一句。django 是前后端分离的嘛。。。。
    dayeye2006199
        24
    dayeye2006199  
       2021-12-10 02:40:13 +08:00
    @sslyd 你用模板引擎,做 server 端渲染,返回 html 就不是;
    你只写 api ,例如用 DRF ,前端用其他框架做的就是

    模板引擎还是有生存的空间,并不是所有的 web 都需要做成 SPA 的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2547 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:20 PVG 10:20 LAX 19:20 JFK 22:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86