跳转到内容

Erlang 编程/设计原则

来自维基教科书,开放的书籍,面向开放的世界

设计原则

[编辑 | 编辑源代码]

发送消息,不要共享内存

[编辑 | 编辑源代码]

消息在进程之间发送。编译器对哪些操作是“并行安全”的非常挑剔,而且它不会羞于让你知道。编译器对发送和接收消息尤其挑剔(并行安全)。如果你在处理完每条消息后递归,那么你的代码将更并行安全。消息按顺序传递,并通过模式匹配(如 Prolog 中)从队列中选择删除。由于内置的广泛模式匹配,Erlang 以声明的方式运行。由于并行挑剔的编译器,编写 Erlang 中的并行程序通常与编写其他语言中的串行程序一样容易,一旦你掌握了这门语言。

尽早失败,频繁失败

[编辑 | 编辑源代码]

Erlang 设计人员经常使用一种不寻常但有效的称为“尽早失败,频繁失败” (FEO) 的设计技术。让进程失败。如果收到意外输入,那么让进程崩溃并重新启动它。这允许使用简洁、健壮的代码。我们不会浪费时间为错误的输入编写代码。我们为预期的输入编写代码(只针对规范)。理论上,这种技术应该可以提高安全性,因为意外输入会导致进程自我销毁,并且错误和不良行为不会传播。

一旦进程崩溃,我们就可以收集崩溃信息并让程序员尽早修复问题。如果进程按规范编写,并且它崩溃了,那么唯一可能的问题是它收到了错误的输入。

华夏公益教科书