duct
1.0.0
Duct是一個高度模塊化的框架,用於使用數據驅動的體系結構在Clojure中構建服務器端應用程序。
它的範圍與Arachne相似,並且基於整合物。管道圍繞不變的配置構建應用,該配置充當結構藍圖。可以操縱和查詢配置以產生復雜的行為。
請參閱:upgrading.md。
與Leiningen創建一個新的管道項目:
lein new duct < your project name >這將創建一個最小的管道項目。您可以通過附加配置文件提示來擴展此功能以添加額外的功能。
+api添加了API中間件和處理程序+ataraxy添加了ataraxy路由器+cljs在clojurescript編譯和熱載中添加+example添加了一個示例處理程序+heroku添加了用於部署到Heroku的配置+postgres添加了PostgreSQL依賴關係和數據庫組件+site添加了網站中間件,favicon,webjars等+sqlite添加了一個sqlite依賴關係和數據庫組件例如:
lein new duct foobar +site +example與所有Leiningen模板一樣,Duct將創建一個新目錄,其名稱與您的項目相同。有關如何運行和構建項目的信息,請參閱項目的README.md文件。
應用程序的結構由整體配置圖定義。
在開發中,管道使用Stuart Sierra的重新加載工作流程。
在生產中,管道遵循十二個因素應用方法。
優先於全球狀態。
名稱空間應故意分組函數,而不是通過圖層進行分組。
協議應用於包裹外部API。
管道在整合物的頂部增加了一層抽象。在整合物中,將配置圖啟動到運行的系統映射中。
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
在管道中,配置啟動了兩次。首先將配置啟動到中間配置,然後將其啟動到系統中:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
就像高階功能使我們能夠抽象代碼的常見模式一樣,Duct的分層配置使我們能夠抽象共同的配置模式。
風管配置中的鍵有望啟動到轉換配置圖的功能。有兩種廣泛的類型:配置文件,它們將其價值合併到配置中,以及可提供更複雜操作的模塊。
管道項目的結構如下。標記為A *的文件被放在版本控制之外。
版權所有©2021 James Reeves
根據MIT許可分發。