結論
幾句話
我看到你最後還是選擇閱讀結論。很好。在我要向你指出一些有趣的主題之前,如果你選擇 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 提供了一組不同的效能分析工具,可以用來分析你的程式並找出各種瓶頸。fprof 和 eprof 工具可用於時間效能分析,cprof 用於函數呼叫,lcnt 用於鎖定,percept 用於並行,cover 用於程式碼覆蓋率。有趣的是,它們大多數都是使用該語言的追蹤 BIF 建立的。
更多內省
Erlang 也有類似 top 的工具,例如 pman 和 etop。你也可以使用 Erlang 除錯器,但我建議使用 DBG 取代它。要探索節點的整個監管樹,appmon 是你的最佳選擇。
文件
EDoc 是一個可以讓你將 Erlang 模組轉換為 HTML 文件的工具。它支援註解和宣告特定頁面的方法,可以讓你建立小型網站來記錄你的程式碼。它與 Javadoc 類似,如果你聽過的話。
GUI
Wx 應用程式是使用 Erlang 編寫跨平台 GUI 的新標準。我不太擅長 GUI,所以可能對大家來說,我沒有介紹這部分反而是更好的。
其他實用函式庫
Erlang 預設提供了許多這裡沒有提及的實用函式庫。密碼學工具、網頁伺服器、網頁用戶端、各種協定實作等等。你可以在https://erlang.dev.org.tw/doc/applications.html 取得它們的完整清單。
社群函式庫
它們有很多。我不想介紹它們,因為它們可能經常變動,而且我也不想偏袒其中一個。但這裡列出一些:如果你需要建置系統,可以使用 Rebar3 和 erlang.mk;如果你想要更友善的追蹤方式,可以使用 redbug 或 recon;如果你想要非常強大且彈性的程序登錄,可以使用 gproc;如果你需要網頁伺服器,可以使用 mochiweb、cowboy 和 yaws;如果你需要 Erlang 的強大分散式函式庫,可以使用 riak_core;hackney 作為網頁用戶端;PropEr、Quickcheck 和 Triq 作為超棒的基於屬性的測試工具(你必須試用其中一個);entop 作為類似 top 的工具;數不清的 JSON 函式庫(jsx、jiffy 等);UX 用於 Unicode 處理和常見演算法(正在等待 R16B);Seresye 和 exat 用於一些 AI 工具;資料庫用戶端函式庫;lager 作為一個非常強大的日誌記錄系統,可以綁定到 Erlang 的 error_logger;poolboy 用於一些通用的基於訊息的池,還有更多東西。社群函式庫可以輕易寫成一本書。
我聽說 LYSE 也是一本書?
你說對了。感謝 No Starch Press,《Learn You Some Erlang》現在可以購買 實體書和電子書!這本總共 600 頁的黑白印刷書籍,包含圖片(電子書為彩色),現在你可以擁有史上最大本的 Erlang 主題鎮紙和書架裝飾品(據我所知)。這應該可以減輕在電腦螢幕上閱讀數百頁的痛苦。
你的想法很吸引我,我想訂閱你的電子報
我在 ferd.ca 有一個部落格,我在那裡討論各種事情(或至少我想討論),但由於我一直都在使用 Erlang,所以不可避免地會回到 Erlang 的主題。
就這樣嗎?
是的,就這樣。祝你今天愉快!