結論

幾句話

我看到你最後還是選擇閱讀結論。很好。在我要向你指出一些有趣的主題之前,如果你選擇 Erlang 作為你想要深入學習的開發語言,我想花幾句話來說,撰寫《Learn You Some Erlang》的過程真是一段難忘的旅程。我花了三年時間,在全職工作和學習之餘,還要應付日常生活的各種需求(如果我有孩子,他們可能早就因為被忽略而死掉了)。

這個網站,再加上一些運氣和更多的努力,讓我獲得了 Erlang 講師、教材撰寫者和開發人員的工作。它讓我能夠環遊世界,結識許多有趣的人。它消耗了我大量的精力,花了我不少的金錢和時間來營運,但它在大多數方面都獲得了十倍的回報。

我必須非常感謝整個 Erlang 社群。他們幫助我學習知識、免費審閱了一頁又一頁的教材、修正我的錯字、幫助我改進英文寫作和整體寫作能力。有許多人以各種方式提供幫助。在時間、建議和一般資源方面貢獻最大的人都在本網站的常見問題中。如果你曾經寫信給我說要請我喝一杯啤酒,不如把這份心意給這些人吧;他們的付出比我更不求回報。

整個 Erlang 社群對我使用 LYSE 所做的工作非常歡迎,並幫助將其推廣給讀者(它甚至出現在官方 Erlang 文件和網站上!)。如果沒有 Erlang 社群的共同努力,這個網站可能在四五章後就夭折了,成為又一個阻塞網路管道的無用網站。所以,嘿,謝謝大家。

其他主題

在不超出範圍的情況下,我只能涵蓋這麼多主題。這個網站如果變成實體書,現在可能會有大約 600 頁。我花了三年時間才完成它,我現在感到疲憊,但也很高興它結束了(現在我有這麼多空閒時間要做什麼呢?),但仍然有很多主題我很想涵蓋。以下是一個簡短的列表

追蹤 BIF 和 DBG

Erlang VM 內外都是可追蹤的。遇到無法理解的錯誤或堆疊追蹤?開啟一些追蹤標誌,VM 就會向你敞開大門。DBG 會採用這些 BIF 並在其之上建立一個應用程式。訊息、函數呼叫、函數回傳、垃圾回收、程序生成和死亡等。一切都是可追蹤和可觀察的。而且,它通常比任何針對 Erlang 等並行語言的除錯器都更好用。它最棒的地方在哪?它可以在 Erlang 內追蹤,所以你可以編寫追蹤自己的 Erlang 程式!如果你研究它們時覺得有點難以理解,你或許可以改用sys模組的追蹤函數。它們只適用於 OTP 行為化的程序,但通常足以讓你開始使用。

效能分析

Erlang 提供了一組不同的效能分析工具,可以用來分析你的程式並找出各種瓶頸。fprofeprof 工具可用於時間效能分析,cprof 用於函數呼叫,lcnt 用於鎖定,percept 用於並行,cover 用於程式碼覆蓋率。有趣的是,它們大多數都是使用該語言的追蹤 BIF 建立的。

更多內省

Erlang 也有類似 top 的工具,例如 pmanetop。你也可以使用 Erlang 除錯器,但我建議使用 DBG 取代它。要探索節點的整個監管樹,appmon 是你的最佳選擇。

文件

EDoc 是一個可以讓你將 Erlang 模組轉換為 HTML 文件的工具。它支援註解和宣告特定頁面的方法,可以讓你建立小型網站來記錄你的程式碼。它與 Javadoc 類似,如果你聽過的話。

GUI

Wx 應用程式是使用 Erlang 編寫跨平台 GUI 的新標準。我不太擅長 GUI,所以可能對大家來說,我沒有介紹這部分反而是更好的。

其他實用函式庫

Erlang 預設提供了許多這裡沒有提及的實用函式庫。密碼學工具、網頁伺服器、網頁用戶端、各種協定實作等等。你可以在https://erlang.dev.org.tw/doc/applications.html 取得它們的完整清單。

社群函式庫

它們有很多。我不想介紹它們,因為它們可能經常變動,而且我也不想偏袒其中一個。但這裡列出一些:如果你需要建置系統,可以使用 Rebar3erlang.mk;如果你想要更友善的追蹤方式,可以使用 redbugrecon;如果你想要非常強大且彈性的程序登錄,可以使用 gproc;如果你需要網頁伺服器,可以使用 mochiwebcowboyyaws;如果你需要 Erlang 的強大分散式函式庫,可以使用 riak_corehackney 作為網頁用戶端;PropErQuickcheckTriq 作為超棒的基於屬性的測試工具(你必須試用其中一個);entop 作為類似 top 的工具;數不清的 JSON 函式庫(jsxjiffy 等);UX 用於 Unicode 處理和常見演算法(正在等待 R16B);Seresyeexat 用於一些 AI 工具;資料庫用戶端函式庫;lager 作為一個非常強大的日誌記錄系統,可以綁定到 Erlang 的 error_logger;poolboy 用於一些通用的基於訊息的池,還有更多東西。社群函式庫可以輕易寫成一本書。

我聽說 LYSE 也是一本書?

你說對了。感謝 No Starch Press,《Learn You Some Erlang》現在可以購買 實體書和電子書!這本總共 600 頁的黑白印刷書籍,包含圖片(電子書為彩色),現在你可以擁有史上最大本的 Erlang 主題鎮紙和書架裝飾品(據我所知)。這應該可以減輕在電腦螢幕上閱讀數百頁的痛苦。

你的想法很吸引我,我想訂閱你的電子報

我在 ferd.ca 有一個部落格,我在那裡討論各種事情(或至少我想討論),但由於我一直都在使用 Erlang,所以不可避免地會回到 Erlang 的主題。

就這樣嗎?

是的,就這樣。祝你今天愉快!