Erlang:OTP vs spawn

Llo*_*ice 6 erlang process erlang-otp

我理解一个过程是如何运作的.我了解如何实现gen-server等OTP行为.

但是当我选择一种方法而不是另一种方法时,我不清楚.

例如,Cesarini等.例如,在Erlang编程中,通过生成进程,编写循环函数等来实现p 240上的数据库服务器.Joe Armstrong在编程Erlang中的第196页上的聊天客户端也产生了一个进程.

为什么这些不能更好地实现为OTP发电机?是出于教育目的吗?还是有合理的技术原因?

换句话说,什么经验法则会指导我实施一种方法而不是另一种方法?

非常感谢.

Pau*_*yot 7

在上面的两个示例中,出于教育目的,优选简单的衍生过程:这更容易解释,这些作者不必解释OTP来传达他们想要教授的东西,并且无论如何理解过程的概念是很重要的.二郎.即使在遵循OTP规则的实际应用程序中,并非所有进程都使用OTP行为实现并插入监督树中.

经验法则很简单.通过查看它带来的内容(代码更改,容错等)或者是否计划与符合OTP的代码集成来确定是否要遵循OTP设计原则.如果您想要它带来的任何功能,请遵循OTP原则,并避免重新发明轮子.

如果你坚持OTP原则,并因此使用gen_*行为,你应该为任何不需要监督或代码升级的短期过程做一个简单的生成.它的寿命不会超过部署版本的时间(否则,soft_purge无论如何都需要).必须将所有其他进程插入监督树中,并可能实现gen_*行为.