什麼是Poly軟體架構?
Polylith 是一種軟體架構,可以解決構建後端系統的一些基本挑戰。這些挑戰是:
- 跨團隊和服務共享我們的程式碼很困難
- 我們缺乏一種用於交流建築概念的共享語言
- 隨著我們程式碼庫的增長,它們往往會變得一團糟,難以更改和測試
- 我們嘗試在我們的開發環境中模仿我們複雜的生產環境
- 我們的系統需要很長時間來測試、構建和部署
Polylith 是一種在系統規模上應用功能性思維的軟體架構。它幫助我們構建簡單、可維護、可測試和可擴充套件的後端系統。
Polylith 透過引入簡單、可組合、類似樂高積木的積木來解決這些挑戰,這些積木可以輕鬆地在團隊和服務之間共享。
為了讓開發體驗更加愉快,我們還構建了一個工具,可以即時建立各種構建塊、增量測試(僅測試受上次更改影響的程式碼)和專案視覺化。
什麼不是 Polylith
- Polylith 不是一個框架,也沒有隨時可用的功能。
- Polylith 不是庫包。
- Polylith 不是工具(但對 Clojure 有工具支援)。
Polylith 適用於哪些程式語言?
Polylith 與語言無關,幾乎可以在任何程式語言中使用它。到目前為止,我們在 Polylith 團隊中只將它與函式式語言Clojure一起使用,但沒有什麼能阻止有人在像C這樣的過程語言或像Java這樣的物件導向語言中使用它,我們在這裡有一個例子。即使沒有工具支援,您也將獲得大部分好處。
當前架構問題
我們將用三種主流軟體架構來描述我們的開發和生產經驗。但我們將首先定義我們的術語:
- 單體:一種軟體架構,其中程式碼儲存在單個程式碼庫中並作為單個工件部署
- 微服務:由小型且可獨立部署的服務組成的軟體架構;每個服務都在一個單獨的程式中執行,並透過網路與其他服務進行通訊
- 無伺服器:基於雲端計算執行模型的軟體架構;在雲供應商動態管理計算機資源的分配
這些架構為我們提供了大量關於如何部署系統的指導,但很少指導如何在每個系統中構建我們的程式碼。多年來,我們嘗試了許多不同的方法來改進我們系統的內部結構(例如DCI、DDD、設計模式、SOA、SOLID、Hexagon等),但沒有一種方法是能將我們帶到開發的必殺技。
為了實現這一目標,我們意識到我們需要捲起袖子,發明一種全新的方法。
Polylith 的單一開發專案使我們能夠在一個地方使用我們所有的構建塊。這將我們的開發經驗與我們選擇的部署架構脫節。
將開發與部署分開使我們能夠將部署決策推遲到最後一刻。這種延遲使我們能夠避免“過早分發”並儘可能長時間地保持我們的系統儘可能簡單。
相關文章
- 什麼是軟體架構設計?- Grady架構
- 探尋軟體架構的本質,到底什麼是架構架構
- 探尋軟體架構的本質,到底什麼是架構?架構
- 務實的軟體架構師是什麼樣?(tpierrain)架構AI
- 架構C01: 什麼是架構?為什麼做架構?架構師需要做什麼?架構
- 什麼是架構師架構
- Android 什麼是架構?Android架構
- 什麼是Saas架構?架構
- 什麼是池架構?架構
- 什麼是Lambda架構架構
- VIE架構是什麼架構
- 什麼是AWS構架?
- 譯文 | 為什麼軟體架構如此重要?架構
- 聯盟鏈跨鏈方案Poly Enterprise是什麼?
- 中介軟體是什麼?Linux中介軟體是什麼意思?Linux
- 軟體架構師必讀!什麼是設計?如何進行設計?架構
- 什麼是數字化工廠?數字化工廠的整體架構是什麼?架構
- 漫畫:什麼是架構師架構
- 什麼是中介軟體?
- 什麼是ERP軟體
- Adobe是什麼軟體?
- 什麼是軟體工程?軟體工程
- pl是什麼軟體
- 什麼是三位一體架構Trinity Architecture? – Oregor架構Go
- 為什麼SOLID原則仍然是現代軟體架構的基礎?- StackOverflowSolid架構
- 什麼是多租戶架構? - Codonomics架構
- 什麼是真正的架構設計?架構
- 一文看懂什麼是架構架構
- 什麼是存算分離架構?架構
- 什麼是企業架構師? (tpierrain)架構AI
- SOA架構和微服務架構的區別是什麼?架構微服務
- 什麼是組態軟體?Web組態軟體又是什麼?Web
- 什麼是軟體諮詢?
- 架構之:軟體架構漫談架構
- 微服務架構(一):什麼是微服務微服務架構
- 什麼是大資料系統架構大資料架構
- 你知道什麼是三層架構嗎?架構
- 什麼是微服務架構?什麼是服務註冊與發現微服務架構