簡體   English   中英

使用Clojure / ClojureScript進行Web開發的后端

[英]Backend for Web Development using Clojure/ClojureScript

我熟悉在Clojure中開發桌面應用程序(編寫多線程交互式可視化系統)。 但是,我對使用Clojure的Web開發相當陌生。

我計划在服務器上使用Clojure來處理邏輯; 和ClojureScript用於處理客戶端工作。 但是,我不知道我的數據庫服務器要使用什么。 我應該使用像Monogodb這樣的東西嗎? 還是Hadoop? 要么 .... ?

該應用程序非常簡單; 一個基本的論壇。 在給定時間,並發用戶總數將<100。 對我來說重要的一點是能夠輕松備份/數據一致性 - 對我來說非常重要的是我可以輕松地進行日常備份(而不是丟失所有數據)。

謝謝!

你可以使用很多數據庫; 如果數據庫有一個Java API,你應該好好去。 MySQLMongoDBPostgresHadoop ......等等。

有關Clojure中webstack的精彩概述,請查看brehaut 關於此事文章

要使用Clojure和ClojureScript快速啟動和運行,請嘗試使用ClojureScriptOne

有很多方法可以寫出你想寫的東西; 如果你已經熟悉Clojure,那么開始它應該不會太難。

我自己沒有使用它,但Datomic( http://datomic.com/ )看起來很適合來自Clojure的任何人。

Datomic是一個了不起的數據庫,我強烈推薦它。 它具有許多功能,使其與其他數據庫系統區別開來:

  • 與Clojure的數據結構一樣,它是持久的,這意味着默認情況下,向數據庫添加新事實不會刪除舊事實,允許您在以前的時間點查詢數據庫的狀態,增強審計能力並協助調試。
  • 底層實體屬性值(EAV / triple)數據模型(至少部分受RDF和語義Web啟發)非常靈活,允許您表達任意圖形結構並毫不費力地處理多態。
  • 查詢語言是Datalog的味道,一種基於模式匹配的查詢語言比SQL等更具表現力,因為它可以進行遞歸查詢,使其特別適合處理圖形數據/查詢。
  • 除了Datalog查詢之外,還有一個pull api,它允許您使用類似GraphQL的表達式從數據庫中提取數據,該表達式指定了您想要從數據庫中提取的類文檔結構的形狀。 甚至可以在Datalog查詢的:find子句中使用這些查詢。
  • 您可以在查詢中使用Clojure函數。
  • 索引系統非常智能,或多或少都是自動化的,與通常用於調優SQL數據庫性能的工作形成鮮明對比。
  • 事務通過與查詢不同的API /函數調用,這意味着在Datomic中,OWASP識別的頭號安全風險(SQL注入)實際上是不可能的。
  • transactor / read-replica設計使得擴展讀取/查詢變得非常容易,同時保持交易者的壓力。
  • 太好玩了。

值得指出的一點是,通過采用EAV數據模型和數據記錄/拉取查詢,Datomic最終具有更接近NoSQL數據庫的結構靈活性,同時仍然是基本的關系,並且在其關系查詢中更具表現力比SQL。

這太棒了,你絕對應該試一試。 它會使你的大腦融化一點。 好的方式。

值得注意的是,它的受歡迎程度激發了許多成功的開源項目,因此基礎方法不會很快就會出現:

  • DataScript:在內存clj / cljs中部分實現
  • Datahike:DataScript的分支,用於查詢磁盤索引,這意味着您不必將所有內容都保留在內存中進行查詢
  • Mentat:Mozilla項目嘗試為Mozilla項目制作類似Datomic的項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM