V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rv54ntjwfm3ug8
V2EX  ›  程序员

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

  •  
  •   rv54ntjwfm3ug8 · 360 天前 · 2620 次点击
    这是一个创建于 360 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如 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  
       360 天前   ❤️ 1
    各自开发统一联调
    zhixuanziben
        2
    zhixuanziben  
       360 天前   ❤️ 2
    1. 前端单独 repo
    2. 不会,都分离了,为何还要和后端仓库关联
    3. 前后端分开独立部署,不放在同一台服务器,但是域名共用同一个,通过路径区分接口和页面
    4. 后台系统也是独立项目,ORM 共享是做什么的?
    zch693922
        3
    zch693922  
       360 天前   ❤️ 1
    1. 是
    2. 不会
    3. 独立部署与发布
    4. 不做独立项目,写 adminController ,做好权限控制就行
    a852695
        4
    a852695  
       360 天前   ❤️ 1
    1 ,是的
    2 ,不会
    3 ,有 CICD 流水线,会持续部署,并且有 gray pre prod 环境,测试通过了才会推对应的制品到下个环境
    4 ,后台系统会剥离出来,不会和主站项目混合在一起,避免单点故障
    rv54ntjwfm3ug8
        5
    rv54ntjwfm3ug8  
    OP
       359 天前
    @zhixuanziben #2 ORM 不共享的话后台怎么操作数据库呢?单独写一套 ORM 么,还是你们不用 ORM 框架?
    dudubaba
        6
    dudubaba  
       359 天前
    一般如果是纯接口调用的 spa 不会放到后端服务里了,用 nginx 代理或者 node 启静态服务就行了。
    sadfQED2
        7
    sadfQED2  
       359 天前 via Android
    为啥要共享 orm?每个项目里面自己写自己的 ORM 代码啊,你看看腾讯发布的去年的研发总结,新增了 1 亿多行代码,这要是业务层代码共享,直接炸锅了。

    另外,不同项目可能编程语言都不一样,共享个啥
    Euthpic
        8
    Euthpic  
       359 天前 via Android
    前后端分离有几个层级:技术栈分离,项目分离,发布部署分离,开发人员分离,组织架构分离。
    oneisall8955
        9
    oneisall8955  
       359 天前 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  
       359 天前
    1. 是的,前端每个需求单独一个 repo ,定时清理
    2. 不会,也没有必要掺和后端,前端就是前端的仓库,后端就是后端的仓库。
    3. build 后通过 CI 自动部署到机器上
    4. 会,管理部分写入一个小的配置数据库,然后在主站那边写一个同步接口,用于通知主站同步配置到生产环境的数据库当中。
    Lattez
        11
    Lattez  
       359 天前
    1 、至少我们组是独立的 repo
    2 、不会,原因在 1
    3 、前后端 ci 全自动代码检测、测试、部署,配置文件也有公司级的配置中心
    4 、不同项目可能有公共的库,model 代码可以共享
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   3006 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 11:49 · PVG 19:49 · LAX 04:49 · JFK 07:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.