2017 年 4 月 6 日
我們與 Cameron Desautels 談論他在 CollBox 使用 Clojure 和 ClojureScript 的情況。
你使用 Clojure 和 ClojureScript 多久了?
我使用 Clojure 約五年,ClojureScript 一年。我在程式設計生涯的早期就接觸到 Lisp(可能是透過 Emacs),因此已經當了約 15 年的 Lisp 愛好者,所以 Clojure 讓我感覺像回到家一樣。
你正在建構什麼產品或服務?
我們使用 Clojure 和 ClojureScript 建構新一代的債務催收服務。我們與雲端會計軟體整合,以方便地擷取和驗證債務,在幕後管理一個信譽良好的債務催收員網路,並智慧地將債務與催收員配對,以最佳化催收率和機率。同時,我們致力於提高一個過去並未以這類事項聞名的產業中的問責制和透明度。
你的團隊有多大?
就只有我!我們是一家小型新創公司,而我組成了工程團隊(目前為止)。但我認為 Clojure 證明了一個開發人員可以建構和維護一個生產網路應用程式。事實上,我們公司的根源可以追溯到在 2015 年 QuickBooks Connect Hackathon 中贏得大獎,當時我們擊敗了由五位每天一起工作的專業工程師組成的團隊,同樣地,我們使用 Clojure 和一位工程師。一個好的工具是一個倍增器。
使用 Clojure 和 ClojureScript 對你來說最有價值的是什麼?
對我來說,使用 Clojure 最有價值的一點是,這門語言致力於重複使用少數可讀、不可變的資料結構。我使用基本資料結構來設定我的應用程式;我使用基本資料結構來串接我的應用程式相依性;我在其中撰寫我的資料庫查詢,我使用它們來記錄指標,而且當我在凌晨 2 點診斷網路例外時,我很幸運,因為該請求是以熟悉的資料結構形式出現,我可以使用多年來我已習慣使用的相同工具來列印、記錄、檢查或更新它。
我無法強調這比擁有不透明 Foo 物件的參考並想知道「這個東西可以做什麼?裡面有什麼?我可以序列化它嗎?我該如何建立一個?它會在我不知情的情況下改變嗎?」好上多少。
你的堆疊是什麼?
我們的前端全部使用 ClojureScript,使用 re-frame。後端是 Clojure,在 AWS 上執行,由 Datomic(在 DynamoDB 上)支援。我們的網路架構是自訂的,但大量使用 aleph、bidi、component 和 transit。
如果你想分享你的 Clojure 故事,請 填寫此表單。