簡體   English   中英

ArangoDB Foxx和Clojure腳本

[英]ArangoDB Foxx and Clojure script

我想使用ClojureScript實現Foxx服務。

我已經讀過,在每個開發步驟中運行轉換器都可以使用TypescriptCoffeescript ;

我可以為ClojureScript做類似的嗎?

我很喜歡和Foxx一起使用Clojurescript,結果是這個開源庫: https//github.com/arango-cljs/forest兩年前我停止工作的原因是REPL工作流程不夠好而缺少Websocket。 但是Clojurescript-in-Clojurescript很快就會推出,Boot構建工具誕生了,我猜ArangoDB + Foxx從那時起就有了很大的改進。 如果您有興趣,我們可以討論。

據我們所知,不可能以能夠在ArangoDB / Foxx中運行的方式編寫ClojureScript應用程序。

與TypeScript和CoffeeScript不同,ClojureScript不僅僅是一種語言,而是一種應用程序運行時。 最好不要將它視為JavaScript的替代語法,而是將其作為編寫恰好在JavaScript引擎上執行的應用程序的一種方式。 換句話說,雖然可以編寫可重用的ClojureScript模塊,但它是為編寫獨立的ClojureScript應用程序而設計的,而不是任意的JavaScript模塊。

因為它最初設計為在瀏覽器中運行,因此不是用類似Node的模塊系統編寫的,所以它通過Google Closure Compiler使用全局命名空間。 這意味着在同一上下文中運行多個應用程序會導致命名空間沖突。

此外,Foxx服務預計將是無國籍的。 任何狀態都必須持久保存在集合或服務器響應中,因為Foxx服務每次都在不同的V8上下文中執行。 另一方面,ClojureScript是有狀態的,因為作為Lisp,它將代碼視為一種特殊形式的數據。

根據經驗:設計為透明替代JavaScript語言的語言(如TypeScript,CoffeeScript,LiveScript,PureScript)應該沒有任何問題。 用於編寫獨立應用程序(如ClojureScript和Elm)的語言很可能無法正常工作。

在任何情況下,如果您想使用替代語言(或Babel),您必須在ArangoDB之外轉換代碼,並且只在Foxx包中包含生成的JavaScript輸出。 在ArangoDB 3.0中,您將能夠像在Node.js中那樣使用帶有require鈎子的單個入口點,但我們仍然建議您出於性能原因預編譯代碼,並且更容易捕獲編譯時錯誤。

暫無
暫無

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

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