请问大厂前后端分离开发工作流是什么样的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
rv54ntjwfm3ug8
V2EX    程序员

请问大厂前后端分离开发工作流是什么样的?

  •  
  •   rv54ntjwfm3ug8 2022-04-04 19:12:02 +08:00 4194 次点击
    这是一个创建于 1290 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如 Angular 写的前端,ASP.NET Core 写的后端,

    1. 前端是单独一个 repo 吗?
    2. 一般会作为 submodule 加进后端的 git 仓库吗?
    3. build 后一般怎么放进后端的 wwwroot 目录(脚本自动 /构建器配置自动 /手动)?
    4. 后台管理部分一般会做为独立的项目吗,这样 ORM 的 Model 和主站怎么共享,也用 submodule 么?
    11 条回复    2022-04-05 18:01:33 +08:00
    pengtdyd
        1
    pengtdyd  
       2022-04-04 19:18:49 +08:00   1
    各自开发统一联调
    zhixuanziben
        2
    zhixuanziben  
       2022-04-04 19:36:19 +08:00   2
    1. 前端单独 repo
    2. 不会,都分离了,为何还要和后端仓库关联
    3. 前后端分开独立部署,不放在同一台服务器,但是域名共用同一个,通过路径区分接口和页面
    4. 后台系统也是独立项目,ORM 共享是做什么的?
    zch693922
        3
    zch693922  
       2022-04-04 19:38:16 +08:00   1
    1. 是
    2. 不会
    3. 独立部署与发布
    4. 不做独立项目,写 adminController ,做好权限控制就行
    a852695
        4
    a852695  
       2022-04-04 19:48:34 +08:00   1
    1 ,是的
    2 ,不会
    3 ,有 CICD 流水线,会持续部署,并且有 gray pre prod 环境,测试通过了才会推对应的制品到下个环境
    4 ,后台系统会剥离出来,不会和主站项目混合在一起,避免单点故障
    rv54ntjwfm3ug8
        5
    rv54ntjwfm3ug8  
    OP
       2022-04-04 20:10:44 +08:00
    @zhixuanziben #2 ORM 不共享的话后台怎么操作数据库呢?单独写一套 ORM 么,还是你们不用 ORM 框架?
    dudubaba
        6
    dudubaba  
       2022-04-04 20:58:55 +08:00
    一般如果是纯接口调用的 spa 不会放到后端服务里了,用 nginx 代理或者 node 启静态服务就行了。
    sadfQED2
        7
    sadfQED2  
       2022-04-04 23:23:54 +08:00 via Android
    为啥要共享 orm?每个项目里面自己写自己的 ORM 代码啊,你看看腾讯发布的去年的研发总结,新增了 1 亿多行代码,这要是业务层代码共享,直接炸锅了。

    另外,不同项目可能编程语言都不一样,共享个啥
    Euthpic
        8
    Euthpic  
       2022-04-05 07:02:11 +08:00 via Android
    前后端分离有几个层级:技术栈分离,项目分离,发布部署分离,开发人员分离,组织架构分离。
    itechify
        9
    itechify  
    PRO
       2022-04-05 07:52:18 +08:00 via Android   1
    非大厂,只写写看法。建议你写一个前后端分离 Demo 项目并发布,不知道就网上找一个。

    前端就单纯 html 及 js 等静态资源,通过 Nginx 或 Apache 等 web 服务器单独部署发布。这与后端是什么语言无关,也与前端是什么 Vue/Angular/框架无关。所以,问题 1 ,2 ,3 都明显有了答案

    问题 4 ,觉得想问的是:admin 的管理接口是否需要新写一个后台管理后端项目来提供?如需要,带来的表字段如何在两个项目间同步?

    我司的做法有点复杂不好参考。(本身是微服务的)存在 admin 前端及后端项目,为了便于权限管理及操作日志记录,admin 的前端访问接口只访问 admin 后端,然后 admin 后端再 rpc 调用对应服务。如有个商品下架功能,先在商品服务写好业务流程,暴露出这个 rpc 接口。admin 服务也有一个对应的下架接口,出参,入参都相同,通过依赖包方式减少代码及保持一致。
    7gugu
        10
    7gugu  
       2022-04-05 10:25:33 +08:00
    1. 是的,前端每个需求单独一个 repo ,定时清理
    2. 不会,也没有必要掺和后端,前端就是前端的仓库,后端就是后端的仓库。
    3. build 后通过 CI 自动部署到机器上
    4. 会,管理部分写入一个小的配置数据库,然后在主站那边写一个同步接口,用于通知主站同步配置到生产环境的数据库当中。
    Lattez
        11
    Lattez  
       2022-04-05 18:01:33 +08:00
    1 、至少我们组是独立的 repo
    2 、不会,原因在 1
    3 、前后端 ci 全自动代码检测、测试、部署,配置文件也有公司级的配置中心
    4 、不同项目可能有公共的库,model 代码可以共享
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:37 PVG 05:37 LAX 14:37 JFK 17:37
    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