iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
1

小明: 夷 ~~~ 奇怪了,我昨天看了Vue ,React ,babel....,他們的源碼都跟我們的庫長得不太一樣ㄟ。

老華: 當然啦,像這種開源庫為了維護性並方便管理,他們都會用不同的代碼管理方式

大型項目管理方式

而常見的代碼管理方式主要有三種

多包管理

-- 圖參考至(https://codefresh.io/continuous-integration/using-codefresh-with-mono-repos/)

  • MonoLith:一個項目,一個Git倉庫。

    • 優點:實現簡單,一庫到底。
    • 缺點:複雜項目代碼復用性低,且不利於團隊協作。
  • Multi-Repo:劃分為多個模塊,一個模塊一個Git倉庫

    • 優點:模塊劃分清晰,每個模塊都是獨立的repo,利於團隊協作
    • 缺點:代碼管理難度增加。比如:1.某個模塊出現bug 相應模塊都需要編譯、上線、涉及到手動控製版本非常繁瑣。2.issue 管理十分麻煩。
  • Mono-Repo:劃分為多個模塊,所有模塊放在一個Git倉庫

    • 優點:代碼結構清晰,利於團隊協作,同時一個庫降低了項目管理、代碼管理以及代碼調試難度。
    • 缺點:項目變得龐大,模塊變多後同樣會遇到各種問題。所以需要有更好的構建工具支持。例如:Lerna

Mono-Repo?

就像上述所說MonoRepo有非常優點多到

  • Better developer testing - 可以立即知道修改程式碼後,所有相關的專案是否還能正常運作
  • Sharing of common components - 只要開發一次元件,就能給所有專案使用
  • Effective code reviews - 要在專案之間檢視程式碼時,可以省下切換的時間

最重點是利於"團隊協作",當多名實力不同的工程師逕行同一個項目時,也能減少因為實力不同而造成的溝通成本。

總結

是的,即使Mono-Repo這個模式依然有很多缺點,像是

  • 程式碼日益龐大,目錄結構就會愈複雜。
  • 建置測試的時間可能會愈花愈長。
    但是他仍然是一個非常好用的代碼管理方式

,而之後跟著大家做一個初步的實作。

參考資料

上一篇
環境搭建好幫手process && env 環境變數
下一篇
大型項目管理工具Lerna
系列文
想成為超級開源貢獻者嗎 ? 新手也能用Javascript寫出專業高效能的"新世代"開源庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言