跳轉到內容

Erlang 程式設計/設計原則

來自華夏公益教科書,開放的書籍,面向開放的世界

設計原則

[編輯 | 編輯原始碼]

傳送訊息,不要共享記憶體

[編輯 | 編輯原始碼]

訊息在程序之間傳送。編譯器對哪些操作是“並行安全”的非常挑剔,而且它不會羞於讓你知道。編譯器對傳送和接收訊息尤其挑剔(並行安全)。如果你在處理完每條訊息後遞迴,那麼你的程式碼將更並行安全。訊息按順序傳遞,並透過模式匹配(如 Prolog 中)從佇列中選擇刪除。由於內建的廣泛模式匹配,Erlang 以宣告的方式執行。由於並行挑剔的編譯器,編寫 Erlang 中的並行程式通常與編寫其他語言中的序列程式一樣容易,一旦你掌握了這門語言。

儘早失敗,頻繁失敗

[編輯 | 編輯原始碼]

Erlang 設計人員經常使用一種不尋常但有效的稱為“儘早失敗,頻繁失敗” (FEO) 的設計技術。讓程序失敗。如果收到意外輸入,那麼讓程序崩潰並重新啟動它。這允許使用簡潔、健壯的程式碼。我們不會浪費時間為錯誤的輸入編寫程式碼。我們為預期的輸入編寫程式碼(只針對規範)。理論上,這種技術應該可以提高安全性,因為意外輸入會導致程序自我銷燬,並且錯誤和不良行為不會傳播。

一旦程序崩潰,我們就可以收集崩潰資訊並讓程式設計師儘早修復問題。如果程序按規範編寫,並且它崩潰了,那麼唯一可能的問題是它收到了錯誤的輸入。

華夏公益教科書