看板 Soft_Job 關於我們 聯絡資訊
拋磚引玉一下 看看各家對於共用程式碼的管理方式 先說痛點 在不同的服務中 有必須共用的程式碼 譬如説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://www.ptt.cc/bbs/Soft_Job/M.1582476836.A.76C.html
x000032001: monorepo 02/24 01:08
NDark: 我提供我的解法. 基本上跟你的嘗試很類似.用git submodule 02/24 01:14
NDark: 但是每個模組都獨立放一個branch.並搭配不同的資料夾. 02/24 01:15
NDark: master 就是所有模組的集合. 02/24 01:15
NDark: 如果單只要一個功能. pull的時候就只checkout那個branch. 02/24 01:16
NDark: 如果需要復合的功能. 可以checkout out多個repo. 02/24 01:17
NDark: 也可以 merge一個複合型branch來供應這個專案需求. 02/24 01:17
NDark: 測試也是另一個branch.這樣專案使用就不需要引入測試專案. 02/24 01:20
ssccg: 用build來管理相依性,不用版控來管理 02/24 09:53
APTON: 好奇大家怎麼處理! 02/24 19:14
newsbielt703: Lerna manorepo? 02/24 21:07
Phenomenon: Monorepo 02/25 20:59
alan3100: dependency management,沒有明確最小buildsize需求不建 02/26 21:14
alan3100: 議自己搞, runtime載入很容易怎麼死都不知道 02/26 21:16
alan3100: 下游自己客制維護又費時費力,autotest跟monitor要很強壯 02/26 21:18