引言
2019 年 8 月 3 日
因此,您已查看 Erlang,也已經閱讀了一些教學課程和許多書籍,但您發現沒有任何內容能真正告訴您如何為您和您的團隊建構現代化專案,最後您便找到了本文。Erlang 社群已經集體花費多年的時間撰寫入門內容,而且其中許多內容仍然非常出色。因此,另一本書的願景是什麼?
坦白說,市面上大多數的教材都非常紮實,足以教您 Erlang 基礎,我們並沒有要取代它們的計畫,也不希望再次說明它們包含的相同內容。相反地,我們作者認為雖然它們在許多方面都非常紮實,但我們可以協助填補一些盲點。
例如,以下列出一些有趣的書籍
- Programming Erlang,由 Joe Armstrong 所著,很適合深入瞭解 Erlang 背後的哲學
- Erlang Programming,由 Cesarini 和 Thompson 所著,是一種非常全面的實務方法,可以用來學習語言和 OTP 片段
- Erlang and OTP in Action,由 Logan、Merritt 和 Carlsson 所著,是第一本 Erlang 書籍,內容旨在真正教您優先使用 OTP,並暗示更廣泛的系統設計
- Learn You Some Erlang,由 Fred Hebert 所著,可能是對 Erlang 和 OTP 最友善的入門書籍,內容旨在涵蓋從 Erlang 基礎到支撐 OTP、發行版本和整體難題的設計原則
- Études for Erlang,由 J. David Eisenberg 所著,是一本絕佳的伴侶練習書,可以與許多其他 Erlang 書籍一起使用,作為一種實務補強
- Concurrent Programming ERLANG,由 Williams 和 Armstrong 所著,是來自 90 年代的一部絕佳歷史作品,顯示 Erlang 的早期版本,以及如何將其應用於真實世界的問題
- Introducing Erlang,由 Simon St. Laurent 所著,是您能用書籍形式取得的最簡潔的 Erlang 初體驗
- Erlang in Anger,由 Fred Hebert 所著,是唯一一本真正包含完整指南,供您在生產中除錯 Erlang 系統
- 使用 Erlang/OTP 進行擴充性設計 by Cesarini & Vinoski 可能採用了最現代化的方法來執行 Erlang/OTP 系統,並具備實際世界的觀點。
- The BEAM Book by Erik Stenman (以及許多社群貢獻者) 是在虛擬機器內部執行最進步的方法。
- 使用 PropEr、Erlang 和 Elixir 進行基於屬性的測試 by Fred Hebert 是唯一一本針對 Erlang 教授基於屬性的測試的書籍
還有更多。
我們無意取代這些。這些書籍(如果不是全部)最大的疏忽在於,它們傾向於單獨專注於 Erlang/OTP。事實上,這些書中的許多書都是在社群工作方式發生重大轉變之前寫成的。例如,學習一些 Erlang 雖然非常完整,但卻是在任何社群驅動建置工具廣泛採用之前、以及 OTP 發行版等概念開始廣泛使用之前寫成的。在目前實施的全新容器化平台時代,還沒有一本是真正為此而寫。而且幾乎所有這些書籍都沒有提到你應該如何建構專案,才能順利融入 Erlang 的開源生態系統。
因此,這就是採用 Erlang 的全部宗旨。這本書(和網站!)旨在填補其他書籍和手冊尚未適當涵蓋的領域。你將在這些頁面中學習到的將包含實際上非常有用的東西,例如
- 如何設定使用多個Erlang 版本,因為在現實世界中,你最終必須為你的工作場所或朋友小組將會使用的多個專案執行多個 Erlang 版本。
- 我們也涵蓋如何設定編輯器和其他工具,因為即使你已經了解基礎知識,但你有可能有不錯的 Erlang 設定。
- 如何從上方來了解 OTP 系統。目前為止,大多數資源都採用由下而上的方法,但我們希望你從第一天起就能具備正確的專案結構,然後在需要時以其他資源填補空白。
- 一個好的專案需要什麼,包括依賴處理、一些測試實務、處理組態和文件處理,等等
- 如何在常見的開放平台上設定良好的持續整合(CI)管道,以便程式碼檢閱和自動化測試可以獲得最佳支援
- 如何處理許多困難的事情,沒有人真正適當地教授,例如處理字串,尤其是 Unicode、時間和適當的 SSL/TLS 組態
- 如何將你的 Erlang 系統部署為自執行式檔案組
- 如何將您的 Erlang 系統適切地封裝為 Docker 映像,並展示如何使用 Kubernetes 管理其生命週期
- 如何計劃設定操作並讓量測運作 超出 VM 提供的範圍;考慮諸如記錄和分散追蹤、用於讓量測儀表板運作的平台等
- 如何建立一個團隊,應用 Erlang 在商業專案
- 如何面試您的第一個 Erlang 專家或開發人員
- 如何規劃您的實務操作,例如程式碼審查、經驗分享等事項
相對的,我們將 不 納入 Erlang 基本知識、核心 OTP 行為等事項。過去已在其他許多資源中討論過這些內容,且許多都是免費提供的。我們仍準備了一個作弊手冊附錄,供您需要複習時參考
我們基本希望 採用 Erlang 能成為各種入門手冊和進階資料之間的失落環節,例如 Erlang 在憤怒中,這可讓您在生產中除錯。我們希望這本書能教您如何從「好的,我想我已经掌握基礎知識了」進步到「讓我們開始這個專案,且正確地執行」。在讀完這本書後,您應該就能確切知道最佳實務是什麼,以便與 Erlang 社群的其他人員適切契合