V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rv54ntjwfm3ug8
V2EX  ›  程序员

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

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

    例如 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
    前后端分离有几个层级:技术栈分离,项目分离,发布部署分离,开发人员分离,组织架构分离。
    oneisall8955
        9
    oneisall8955  
       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   ·   实用小工具   ·   2122 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:52 · PVG 08:52 · LAX 16:52 · JFK 19:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.