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

2022-04-04 19:12:02 +08:00
 rv54ntjwfm3ug8

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

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

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

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

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

我司的做法有点复杂不好参考。(本身是微服务的)存在 admin 前端及后端项目,为了便于权限管理及操作日志记录,admin 的前端访问接口只访问 admin 后端,然后 admin 后端再 rpc 调用对应服务。如有个商品下架功能,先在商品服务写好业务流程,暴露出这个 rpc 接口。admin 服务也有一个对应的下架接口,出参,入参都相同,通过依赖包方式减少代码及保持一致。
7gugu
2022-04-05 10:25:33 +08:00
1. 是的,前端每个需求单独一个 repo ,定时清理
2. 不会,也没有必要掺和后端,前端就是前端的仓库,后端就是后端的仓库。
3. build 后通过 CI 自动部署到机器上
4. 会,管理部分写入一个小的配置数据库,然后在主站那边写一个同步接口,用于通知主站同步配置到生产环境的数据库当中。
Lattez
2022-04-05 18:01:33 +08:00
1 、至少我们组是独立的 repo
2 、不会,原因在 1
3 、前后端 ci 全自动代码检测、测试、部署,配置文件也有公司级的配置中心
4 、不同项目可能有公共的库,model 代码可以共享

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX