入門文檔(官方首選)
- Erlang 官方文檔:
erlang.org/doc/ — 語言參考、標準庫、效率指南、系統原理,最權威、最全面。
- 《Erlang Programming》 (Francesco Cesarini & Simon Thompson, O'Reilly) — 經典入門書,涵蓋語法、並發、OTP、發佈部署。
- 《Learn You Some Erlang for Great Good!》 (Fred Hébert) — 免費在線閱讀,幽默風格,適合快速上手。
進階與實戰
- 《Designing for Scalability with Erlang/OTP》 (Francesco Cesarini) — OTP 設計原則、Supervisor 樹、Application 打包、熱升級、分布式集群。
- 《Erlang and OTP in Action》 (Martin Logan 等) — 實戰項目導向,涵蓋消息隊列、緩存、Web 服務器構建。
- 官方 OTP 設計原則:
erlang.org/doc/design_principles/ — 行為模式、應用程序結構、釋放處理。
虛擬機與底層原理
- 《The BEAM Book》 (Erik Stenman) — BEAM VM 內部:調度器、內存佈局、垃圾回收、進程實現、二進制處理。
- 《Erlang Runtime System》 官方文檔 — 進程調度、內存分配器、代碼熱加載、分布式協議。
經典論文與經驗分享
- 《Concurrent Programming in Erlang》 (Armstrong, Virding, Williams) — 語言創始人著作,並發哲學、錯誤處理、分布式編程核心思想。
- 《Hitchhiker's Guide to Concurrency》 — 實戰中避坑指南:進程字典濫用、大消息複製、原子表膨脹等。
- WhatsApp/Facebook/Ericsson 技術博客 — 百萬級並發架構案例:連接池、會話管理、故障域隔離。
工具鏈與生態
- Rebar3 / Mix — 構建工具,依賴管理、發佈打包、測試覆蓋率。
- Dialyzer — 靜態類型分析器,發現類型錯誤、無用代碼、競態條件。
- Observer / Recon — 運行時監控:進程樹、內存佔用、消息隊列長度、網絡統計。
- Ecto / Phoenix — 若需 Web 開發,Elixir 生態可無縫調用 Erlang 庫。
學習路線建議
- 官方文檔「Getting Started」+ 《Learn You Some Erlang》前 10 章(1-2 週)。
- 動手寫一個「聊天室」或「鍵值存儲」練習 GenServer、Supervisor、分布式節點連接(2-3 週)。
- 閱讀《Designing for Scalability with Erlang/OTP》並重構前項目(1 個月)。
- 深入 BEAM VM 原理,學會用 Observer/Recon 診斷生產問題(持續)。
總結
Erlang 學習曲線陡峭但回報極高。核心在於掌握 Actor 模型並發哲學 + OTP 框架模式 + BEAM VM 運行機制。建議「文檔為主、項目驅動、工具輔助」三位一體推進。