为什么将OTP与erlang一起使用?

为什么将OTP与erlang一起使用?,erlang,otp,erl,Erlang,Otp,Erl,正如问题所说:使用erlang开发时,使用OTP设计原则会带来什么好处 (我正在开发一个只接收命令和发送响应的服务器)OTP包含一些很好的容错系统设计模式,例如gen_server和Supervision,这可能很有趣。这取决于您想对Erlang做什么 例如,如果你想要运行一个网站,你可能会对使用感兴趣,如果你想要一个容错网站,你可能会使用OTP和Yaws进行监督 OTP还包含有用的行为模式。OTP是一套经过战斗的设计元素和习惯用法,用于创建容错系统,如Jonas所说,以及其他东西(如灵活性、实

正如问题所说:使用erlang开发时,使用OTP设计原则会带来什么好处


(我正在开发一个只接收命令和发送响应的服务器)

OTP包含一些很好的容错系统设计模式,例如gen_server和Supervision,这可能很有趣。这取决于您想对Erlang做什么

例如,如果你想要运行一个网站,你可能会对使用感兴趣,如果你想要一个容错网站,你可能会使用OTP和Yaws进行监督


OTP还包含有用的行为模式。

OTP是一套经过战斗的设计元素和习惯用法,用于创建容错系统,如Jonas所说,以及其他东西(如灵活性、实时更新等)。简言之,您希望将其用于这些环境或可能发展成为这些环境的环境,因为在Erlang中创建可靠、稳定的系统需要付出大量的血汗和眼泪,而这些血汗和眼泪已经融入到OTP行为和体系结构中。如果你不使用它们,你要么没有一个容错、灵活的系统,要么你将重新创建所有决策,一次一个失误,最终创建一个OTP克隆

所以问题是什么时候你不想使用OTP?如果您不使用打算在中断最少的情况下长时间运行的软件,则不需要OTP。如果您已经有了一个框架来完成您更熟悉的工作,那么您不需要OTP。如果你想了解(也许是艰难的方式)OTP设计背后的决策,你不需要OTP。如果学习OTP的成本(这是有成本的!)超过了软件的系统停机成本,则不需要OTP


了解OTP的原因的最好方法是。如果没有直接说明原因,您通常可以从字里行间了解每个组件的基本原理。

@dkk:您可能有兴趣监督您的服务器,并在服务器崩溃时自动重新启动它。也许可以在运行时通过热代码交换对其进行升级。所有这些都可以在没有OTP的情况下完成。OTP只是一个为您提供此功能的库,并且经过了广泛的测试(因此它不太容易出错)。请完成:“OTP提供了实现最常见的并行设计模式的库模块。在幕后,程序员不必知道,库模块确保以一致的方式处理错误和特殊情况。因此,OTP行为提供了一组用于设计和构建工业级系统的标准化构建块。“不确定这里是否允许在堆栈溢出上插入一本书,但的免费示例第1章和第3章应该会让您了解OTP的好处。我在SO和PSE中看到了许多指向书籍的链接。别担心,理查兹。最糟糕的情况是,你会像狗一样被禁止和追捕D