2015-01-31 25 views
-1

要開始Clojure中的一個新的Web應用程序,將使用以下庫爲基地開始,但想聽聽別人的替代或補充:Clojure的Web應用程序庫的選擇

嗡 - UI

祕書 - 客戶端導航(帶的雙向或絲綢更換?)

森特 - 客戶機/服務器通信

環/的Compojure/HttpKit - Web服務器

組件 - 應用程序架構/模塊/再圖案(別的東西嗎?)

朋友 - 身份驗證/授權(巴迪呢?)

解放者 - REST Web服務(任何替代方案? )

Figwheel,黃鼠狼,重裝上陣模式 - 發展糖

+0

這對程序員來說是一個更好的問題。 – Mars 2015-02-01 05:51:26

+0

在這裏有選項可以將問題轉移到另一個SE嗎? – michaelr524 2015-02-01 06:00:34

+1

值得考慮Om - [Reagent](http://holmsand.github.io/reagent/)的替代方案。 – Jarlax 2015-02-01 09:57:24

回答

0

這答案真的取決於你實際需要什麼。有沒有這樣的事情,作爲一個項目的起點,你應該總是使用庫的整體組合。您尚未指定您的要求,因此我們無法說出您應該將哪些內容投入到您的項目中。

這裏有一些一般性意見:

許多庵應用程序是單頁的應用程序,從單一的URL加載。如果這也是你的情況,你不需要祕書。如果你有多個URL都使用相同的編譯clojurescript文件,那麼這就是祕書進入圖片的地方。但是如果你不使用:使用clojurescript進行高級優化,那麼你也不需要祕書,因爲你可以在每個頁面上顯式加載一個特定的名字空間。取決於您所期望的複雜性和部署水平。

您提到Http Kit,您是否對Jetty有特別的需求,這往往會更普遍?如果是因爲你需要websocket,那麼值得考慮爲什麼你需要websocket。他們很酷,但在我認爲將它們作爲默認環境之前應該給予考慮。 Websockets當然不是沒有缺陷的,大多數情況下,服務器和瀏覽器之間的通信通過使用普通的請求/響應和ajax來處理起來非常簡單,而且更穩定,這種方式已經存在很長時間了,值得了解和使用即使你後來決定websocket值得探索。我會爲此推薦cljs-ajax庫。

您應該將fogus EDN library添加到您的列表中,因爲它是Ring中間件,它將處理瀏覽器和客戶端之間的數據傳輸,而不管您的首選傳輸方法。

您對授權庫的選擇實際上取決於您需要的授權類型。在那個領域沒有一個通用的方法。

+0

的確,我們正在討論單個頁面應用程序,它是從一個URL加載的。將使用:先進的生產優化。 單頁應用程序中的路由/導航仍然適用於在應用程序中的邏輯屏幕之間進行導航 - 也包括導航歷史記錄/後退按鈕,到特定屏幕的網址等。 – michaelr524 2015-02-01 10:48:09

+0

我在其他地方成功地使用了Http Kit項目,除了websockets和streaming之外,它的性能比jetty還要好。 我相信,應用程序將受益於websockets支持與回退,這正是上述Sente庫提供的。 身份驗證將是一個登錄屏幕,其中包含一個針對數據庫用戶表進行驗證的用戶/密碼。還有角色和權限,所以我想用這些來管理對不同Web服務的訪問。 – michaelr524 2015-02-01 10:48:49

+0

好吧,只要確保你需要一個安全的websocket,我不認爲http-kit提供這個功能,雖然也許你沒有處理敏感數據到你的服務器。 – johnbakers 2015-02-01 11:54:53

相關問題