你真的懂Monorepo?五分鐘帶你認識前端大型架構

閱讀時間約 4 分鐘
你真的懂Monorepo?五分鐘帶你認識前端大型架構
未來文章一併更新於此網站 Hogan.B Lab
並且包含多語系 繁體中文英文日文簡體中文

大型架構

什麼是大型架構?

大型(large scale)是一個有點模糊的詞彙,什麼是大型?
100人以上的前端大型開發專案?還是超過一千個頁面的大型專案?或是跨國部門的前端大型開發專案呢?
說實話,大型開發專案每個人心中的答案不同,但是不可否認的,當程式碼數量一累積,不管是哪一類型的大型專案都是相當難以管理的。

從幾個角度來舉例:

前端技術:有的前端頁面系統使用Vue.js、Jest,有的前端使用React.js、Cypress,維護起來相當費時。
前端架構:幾百幾千個的功能前端元件散落在各個不同的檔案,彼此之間的耦合性以及相依性複雜。
團隊:團隊彼此間都有自己的程式碼風格,以及習慣使用的技術,在不同團隊合作上可能專注在自己團隊的規則,忽略溝通。
為了解決上述的問題,Monorepo前端大型架構就這樣誕生了。

Monorepo

Monorepo 簡介

前端技術近幾年快速演變,ES6,、SCSS 前處理、npm,、前端框架、CI/CD、Docker… 等等。如果要完成一個小型的應用程式,除了上述列舉的技術以外,可能還需要維護比較大型且複雜的平台。
Monorepository 是一個架構的概念,從字面上的意思來看Mono(one)repo(repository),可以得知這樣的(Monorepo)架構是將大量的程式碼全部放在同一個 Code base 下做管理,不同於舊有的分離式概念,Google 是優先採用Monorepo 的公司之一。
從以下 Monorepo架構圖可以大致上知道Monorepo與其他不同的架構差異。
https://www.toptal.com/front-end/guide-to-monorepos

Monorepo優缺點

Monorepo 前端大型架構有什麼優點呢?
1. 程式可重用性高,可避免重工
2. 程式碼更透明,更好進行重構
3. 所有套件使用相同版本,包含測試以及設定檔
4. 所有程式碼風格一致
5. 不同團隊間溝通更頻繁
Monorepo 前端大型架構有什麼缺點呢?
1. 沒辦法針對部分程式碼,設定權限
2. 當進行大型專案時,Git 效能沒有這麼的好
3. 建置應用程式時間較長

Monorepo 文化

其實Monorepo這個概念已有一段時間了,在三十年前就有FreeBSD一詞並且使用CVS以及跟Monorepo相關概念的知識以及技術。
也有相當多的開源專案也是因Monorepo概念而成功的,例如:
Laravel:其中一個PHP的網頁框架
Babel:相當知名的JavaScript的網頁編譯器。Monorepo也間接的幫助Babel完成多種專案的打包。
React、Angular、Vue:知名的前端框架也因Monorepo的出現,讓各種前端框架系統可以存在於同一個大型專案裡面。

Monorepo 適合投資嗎?

以一言以蔽之來說,Monorep是一個「前人種樹,後人乘涼」的概念。
以前端舉例:當要在多個不同系統以及產品中,共用相同的元件,Monorepo是一個相當好的選擇。雖然一開始在設定以及成功運行上需要花費一些時間,但是未來不同團隊間如果有遇到類似的元件,是可以直接去做使用的。
或許有些人認為Monorepo會因為各種因素而選擇不使用,諸如:程式碼權限問題、總檔案量越來越大… 但讀者還是可以根據不同情況去做抉擇。

結語

Monorepo 只是一個工具。雖然面對各式各樣的問題都有不同的解決方法,Monorepo也不一定是最佳解法,但是未來這樣的概念也會持續進步,並且幫助我們處理更龐大且複雜的問題

引用

即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
希望能透過「React框架白話文運動」系列文章,利用口語化語表以及簡單的程式碼範例,能讓讀者更明白React的各種應用。 系列文章會講述以下: 1. 了解 ES6 JavaScript 語法 2. 了解 React 的運作原理 3. 了解 React 的狀態管理 4. 使用 React Hook管理狀態並且存取資料
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
所謂的品牌,不只是取個名字,不只是設定公司行號名稱。 而是賦予「價值」。 比方: 你瓜瓜落地的瞬間,可能是父母設定好的八字安排,出生前就取好了名。 人人都稱呼你為曾可愛,這是你的名字,難道你真的就可愛? 要人人都認可你是真的可愛,真心追捧稱讚,人人都嚮往與你交流,這就是你的核心價值。而
Thumbnail
什麼是「居住正義」?如果你心目中的答案,只是讓房價下跌,那麼居住正義可能被你想的太狹隘了!「居住正義」包含了房市交易資訊透明、稅制公平、打擊炒作,以及都市更新、都市建設與文化延續等。更廣義來看,讓每個人安居樂業,才是真正的居住正義。 柯文哲怎麼實踐居住正義? 柯文哲針對「居住正義」舉辦一場論壇,
Thumbnail
你真的懂自己了解自己嗎 很多人活一輩子都不知道自己要什麼 只知道一直填補心裡的空虛 總是會對某些人事物有上癮的感覺 和這種人談感情是最辛苦的 大部分人總是有著不同程度的身體和心靈上的問題 不過心靈上的問題會遠超過身體上的問題 隨著年紀的增長可能因為外在的壓力會變得越來越嚴重 甚至到最後會迷失自己而
Thumbnail
我很喜歡一句話:你真的懂做每件事的「道理」嗎?多數人往往只注重「理」,想用方法論速成,執著於「怎麼做到」,覺得自己努力了卻沒有任何進步,為什麼?試想,我們會說人講的「頭頭是道」,不會說「頭頭是理」,因為真正聰明的人是反過來先追求「道」,用宏觀的視野掌握底層邏輯。
Thumbnail
智商到底是什麼?坊間的那種智力測驗有多少是真的? 讓我告訴你關於智商的小知識
【知識IP系列:你真的懂什麼叫知識複利?】 昨天圖解讀書會後,大家認為知識IP真是徒手印鈔機嗎? 那麼,為什麼有些講師將其知識產品化後,收入來源依然大量倚賴「時間賺錢的模式」——持續發行「產品」、到處講課? 所謂的「可累積」並非指「複利」,複利是計算利息的方法,如果沒有累積利息,討論複利有點跳躍。
Thumbnail
嗨,不知道你看了魷魚遊戲沒?看完是什麼感覺呢? 我自己看完是覺得很殘酷,同樣生而為人,有人可以用錢來買別人的生命只為一時的快感,有人卻逼不得已要賭上性命爭取一個翻身的機會,讓我想到另一部也是在探討社會底層議題的電影:寄生上流,兩者同樣在描述階級與面對現實人生的無奈。
Thumbnail
所謂的「現代藝術」天馬行空,有時候甚至令人生畏,《藝術7鑰》是為了對於現代及當代藝術感興趣的讀者們而誕生的。
Thumbnail
「為什麼在家裡會覺得壓力很大?」應該很有人都有感覺。「從什麼時候開始,這個家變成一秒惹怒我們的地方?」或許也是我們心中的吶喊。  還有,還有,「去哪?跟誰?幾點回來?」、「跟你說過多少次了」、「你應該要更努力一點」、「你整天在家有什麼好累的?」、「你知不知道我是為你好」……,這些話我們很熟悉,聽了很
Thumbnail
世界上最遙遠的距離是把把你的錢放到我的口袋,最困難的事情是把我的想法放到你的腦袋。職場上的困難重重大都來自不懂溝通、不會溝通加上不願意溝通。溝通是傳遞想法的管道,我對這件事的想法是什麼必須透過溝通才能讓你了解,而你的想法也必須經過溝通才能傳遞到我的腦中。 溝通的目的不是說服!很多人以為溝通完對
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
所謂的品牌,不只是取個名字,不只是設定公司行號名稱。 而是賦予「價值」。 比方: 你瓜瓜落地的瞬間,可能是父母設定好的八字安排,出生前就取好了名。 人人都稱呼你為曾可愛,這是你的名字,難道你真的就可愛? 要人人都認可你是真的可愛,真心追捧稱讚,人人都嚮往與你交流,這就是你的核心價值。而
Thumbnail
什麼是「居住正義」?如果你心目中的答案,只是讓房價下跌,那麼居住正義可能被你想的太狹隘了!「居住正義」包含了房市交易資訊透明、稅制公平、打擊炒作,以及都市更新、都市建設與文化延續等。更廣義來看,讓每個人安居樂業,才是真正的居住正義。 柯文哲怎麼實踐居住正義? 柯文哲針對「居住正義」舉辦一場論壇,
Thumbnail
你真的懂自己了解自己嗎 很多人活一輩子都不知道自己要什麼 只知道一直填補心裡的空虛 總是會對某些人事物有上癮的感覺 和這種人談感情是最辛苦的 大部分人總是有著不同程度的身體和心靈上的問題 不過心靈上的問題會遠超過身體上的問題 隨著年紀的增長可能因為外在的壓力會變得越來越嚴重 甚至到最後會迷失自己而
Thumbnail
我很喜歡一句話:你真的懂做每件事的「道理」嗎?多數人往往只注重「理」,想用方法論速成,執著於「怎麼做到」,覺得自己努力了卻沒有任何進步,為什麼?試想,我們會說人講的「頭頭是道」,不會說「頭頭是理」,因為真正聰明的人是反過來先追求「道」,用宏觀的視野掌握底層邏輯。
Thumbnail
智商到底是什麼?坊間的那種智力測驗有多少是真的? 讓我告訴你關於智商的小知識
【知識IP系列:你真的懂什麼叫知識複利?】 昨天圖解讀書會後,大家認為知識IP真是徒手印鈔機嗎? 那麼,為什麼有些講師將其知識產品化後,收入來源依然大量倚賴「時間賺錢的模式」——持續發行「產品」、到處講課? 所謂的「可累積」並非指「複利」,複利是計算利息的方法,如果沒有累積利息,討論複利有點跳躍。
Thumbnail
嗨,不知道你看了魷魚遊戲沒?看完是什麼感覺呢? 我自己看完是覺得很殘酷,同樣生而為人,有人可以用錢來買別人的生命只為一時的快感,有人卻逼不得已要賭上性命爭取一個翻身的機會,讓我想到另一部也是在探討社會底層議題的電影:寄生上流,兩者同樣在描述階級與面對現實人生的無奈。
Thumbnail
所謂的「現代藝術」天馬行空,有時候甚至令人生畏,《藝術7鑰》是為了對於現代及當代藝術感興趣的讀者們而誕生的。
Thumbnail
「為什麼在家裡會覺得壓力很大?」應該很有人都有感覺。「從什麼時候開始,這個家變成一秒惹怒我們的地方?」或許也是我們心中的吶喊。  還有,還有,「去哪?跟誰?幾點回來?」、「跟你說過多少次了」、「你應該要更努力一點」、「你整天在家有什麼好累的?」、「你知不知道我是為你好」……,這些話我們很熟悉,聽了很
Thumbnail
世界上最遙遠的距離是把把你的錢放到我的口袋,最困難的事情是把我的想法放到你的腦袋。職場上的困難重重大都來自不懂溝通、不會溝通加上不願意溝通。溝通是傳遞想法的管道,我對這件事的想法是什麼必須透過溝通才能讓你了解,而你的想法也必須經過溝通才能傳遞到我的腦中。 溝通的目的不是說服!很多人以為溝通完對