作者ripple0129 (perry tsai)
看板Soft_Job
标题[讨论] 共用程式码管理
时间Mon Feb 24 00:53:54 2020
抛砖引玉一下
看看各家对於共用程式码的管理方式
先说痛点
在不同的服务中
有必须共用的程式码
譬如説DB schema的model
譬如説常用的utils
相同的商业逻辑但不同服务都需要使用到
如果不整理起来就会变成是
当一处更新就要复制贴上到每个服务
目前我主要处理方式为
git submodule
在每个服务下建立一个共用的submodule
一个服务有更新其他服务就git pull即可
共用也牵涉到很多问题
最常遇到的就是依赖问题
A服务与B服务共用一个class
但是C服务不需要
而这个class依赖某个套件
则可能逼迫C服务必须安装此套件
但如果共用的submodule要细分
则可能要变成AB用AC用BC用ABC用
四个submodule
管理起来不会更容易
是说还有没有更优雅的解决方式
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.60.81 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1582476836.A.76C.html
1F:→ x000032001: monorepo 02/24 01:08
2F:推 NDark: 我提供我的解法. 基本上跟你的尝试很类似.用git submodule 02/24 01:14
3F:→ NDark: 但是每个模组都独立放一个branch.并搭配不同的资料夹. 02/24 01:15
4F:→ NDark: master 就是所有模组的集合. 02/24 01:15
5F:→ NDark: 如果单只要一个功能. pull的时候就只checkout那个branch. 02/24 01:16
6F:→ NDark: 如果需要复合的功能. 可以checkout out多个repo. 02/24 01:17
7F:→ NDark: 也可以 merge一个复合型branch来供应这个专案需求. 02/24 01:17
8F:推 NDark: 测试也是另一个branch.这样专案使用就不需要引入测试专案. 02/24 01:20
9F:→ ssccg: 用build来管理相依性,不用版控来管理 02/24 09:53
10F:推 APTON: 好奇大家怎麽处理! 02/24 19:14
11F:推 newsbielt703: Lerna manorepo? 02/24 21:07
12F:推 Phenomenon: Monorepo 02/25 20:59
13F:→ alan3100: dependency management,没有明确最小buildsize需求不建 02/26 21:14
14F:→ alan3100: 议自己搞, runtime载入很容易怎麽死都不知道 02/26 21:16
15F:→ alan3100: 下游自己客制维护又费时费力,autotest跟monitor要很强壮 02/26 21:18