2018 年 4 月 19 日
您使用 Clojure 或 ClojureScript 構建什麼產品或服務?
Stitch 是一種萃取轉換載入 (ETL) 服務,它會連接到 Salesforce 和 Facebook Ads 等工具,並將這些平台的資料整合到一個中央位置(資料倉儲),以便進行分析。
您使用 Clojure 多久了?
自公司於 2016 年成立以來,我們便在製作環境中使用 Clojure。我們許多早期的團隊成員在之前的職位中都曾使用過 Clojure,因此這是一個顯而易見的選擇。
您的團隊規模有多大?
我們有 12 位工程師使用 Clojure 處理我們的後端服務。
您最喜歡使用哪個 Clojure 函式庫?
我們使用一些不同的原生 Clojure 函式庫,例如 ring、compojure 和 http-kit。但是,當有支援良好的 Java 函式庫可供特定目的使用時,我們傾向於使用 Java 版本,並依賴 Clojure 出色的 Java 互操作 支援。例如,我們使用 Java 函式庫用戶端來處理各種 AWS 服務、Apache ZooKeeper 和 Apache Kafka。
Clojure 或 ClojureScript 中您最喜歡的功能是什麼?
有很多,但有幾個特別突出
不可變性。我們盡可能依賴參照透明度,這使得我們的應用程式更容易測試和理解。
互動式開發。我們許多人使用帶有 CIDER 的 Emacs,它允許我們互動式地開發、除錯和測試事物。
你的堆疊是什麼?
我們的網路服務在 ELB 負載平衡器後方的 AWS EC2 執行個體上執行。我們使用 ring 和 Jetty 作為我們的網路伺服器。我們大多數較新的資料庫都是 Postgres RDS。我們的某些應用程式使用 Redis 進行快取。
我們的實際資料管道由 Clojure 網路服務作為前端,該服務將資料儲存到 Kafka,然後再透過幾個較小的 Clojure 服務將資料路由、轉換並載入其目的地。
使用 Clojure 或 ClojureScript 對你的業務有何價值?
Clojure 允許我們開發健全的應用程式,這些應用程式比用其他語言編寫的應用程式更簡單、更小且更容易理解。我們可以運用完整的 Java 函式庫生態系統。它允許我們的開發人員透過連線到正在執行的 JVM 並執行程式碼來快速除錯問題。而將 clojure.test 與 nREPL 連線的互動性結合使用,讓我們能夠透過嚴密的反覆 TDD 迴圈快速建構原型。
如果你想分享你的 Clojure 故事,請填寫此表單。