iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 30
0
Software Development

擁抱 Clojure系列 第 30

[第 30 天] 擁抱 Clojure:下一步

下一步

回顧

你從一無所知,到現在對 Clojure 有了初步的認識。首先知道了 Clojure 的基本組成以及資料結構與型態,接着學會了如何建立繫結與函式,知道了控制程式流程的方式,以及如何組織專案和建立命名空間,以有系統的方式統整程式碼。

接下來你知道了自行建立資料型態的方式,並知道與 Java 和諧共存將會使你的程式更加穩健可靠。你還知道了在 Clojure 中讀取器扮演的角色,以及添加詮釋資料的手法。更重要的是,你學會了並行與併發的設計方法,以及如何有效正確的處理狀態。

你還學會了被稱爲魔法的巨集。接下來呢?

本篇文章將介紹延伸資訊,供讀者在讀完本系列文章後,進一步學習的方向和參考。

專案與函式庫

ClojureScript

ClojureScript 是建立在 JavaScript 之上的 Clojure。使用了 Google 開發的 Closure Compiler 與 Closure Library,作爲轉譯工具與函式庫,將 Clojure 程式語言轉譯成 JavaScript。使用者可以使用已內建不變性與函數式設計的語言,而不需四處尋找解決方案或重新發明輪子。

Spec

做爲一個動態語言,Clojure 雖然有類型註釋可以標註型態,但是因爲非強制,所以使用者必須更加小心型態之間的變化。

從 1.9 開始,Clojure 內建了 clojure.spec 的命名空間,讓使用者可以建立型態與函式的規範。除了讓使用者清楚明瞭之外,還可以利用規則驗證資料、自動測試、以及自動產生測試資料。

Cortex

Cortex 是一個以 Clojure 開發的機器學習函式庫,即將邁向 1.0 版本。

Ring/Compojure

Ring 類似與 Ruby 中的 Rack 或 Python 中的 WSGI,將 HTTP 抽象化後提供簡單的 API 供使用者建立網站應用程式。而 Compojure 則是可以與 Ring 搭配使用的路由選擇函式庫。

Reagent

Reagent 是由 ClojureScript 開發的框架,使用 Facebook 開發的 React 使用者介面函式庫,易於使用與簡潔的語法。

延伸閱讀

以下列出建議讀者繼續閱讀的書籍:

  • The Joy of Clojure,Manning 出版社

  • Mastering Clojure Macros,The Pragmatic Programmer 出版社

  • The Little Schemer,麻省理工出版社

  • On Lisp,作者 Paul Graham

本地社群

在本地,有一群熱愛 Lisp 與 Clojure 程式語言的有志之士,組織了 Clojure Taiwan 社群。每月的聚會除了有專題分享之外,還有定期的讀書會,與參與者一起學習 Clojure。

聯絡社群的管道有臉書、推特與 Telegram,詳細聯絡方式都可以在官網上找到。

關門之前

最後,本系列文章不應該是你學習 Clojure 的終點,而是起點。帶着從此處學習到的知識,踏進外頭廣闊的世界,將 Clojure 運用在你的工作或專案上,擁抱 Clojure。

將門關上並不是停止,而是踏出新的旅程。

還不賴吧?諸君,後會有期!

每個人都知道他終會孤寂,在酒店關門之後。

— 戴夫•凡•藍克《最後的召喚》

(本篇文章同步刊登於 GitHub,歡迎在文章下方留言或發送 PR 給予建議與指教)


上一篇
[第 29 天] 擁抱 Clojure:測試
系列文
擁抱 Clojure30

1 則留言

0
taiansu
iT邦新手 5 級 ‧ 2018-01-18 12:23:57

恭喜完賽~ :D

林萌 iT邦新手 5 級‧ 2018-01-18 12:29:06 檢舉

感謝,也恭喜你 XD

我要留言

立即登入留言