用erlang开发工业级产品的过程中,会碰到相似的问题域,例如监控、程序打包等等。
OTP 就是针对这些问题域的解决方案。
OTP包括如下部分:
1、 监控树
强大的监控能力,是erlang强于其它语言的核心所在;
所以基于erlang的应用,都应该具有监控功能,因此,OTP首先提供了supervisor模块,来解决这个共性问题。
在监控树种,包括监控进程和工作进程,所有进程链接成一个监控树。
2、 进程的行为
工作进程,通常具有相同的行为;OTP提炼出这些共同的行为,提供了三类主要的行为包,分别是 gen_server, gen_event, gen_fsm。 一个工作进程,通常采用其中的一种或几种行为模式即可。
使用OTP行为包的好处:
1)、 强制程序员以一种避免并发应用程序中的典型错误的方式编写代码。
2)、 整个团队具有共同的编程风格。
3、 应用打包
监控进程+工作进程,这些模块需要被作为一个完整的应用发布,OTP提供了application包来解决打包所面对的共同问题。
结论:
用erlang开发,一定要使用OTP;按照erlang成熟的开发模式走,不要自己造轮子。
OTP 就是针对这些问题域的解决方案。
OTP包括如下部分:
1、 监控树
强大的监控能力,是erlang强于其它语言的核心所在;
所以基于erlang的应用,都应该具有监控功能,因此,OTP首先提供了supervisor模块,来解决这个共性问题。
在监控树种,包括监控进程和工作进程,所有进程链接成一个监控树。
2、 进程的行为
工作进程,通常具有相同的行为;OTP提炼出这些共同的行为,提供了三类主要的行为包,分别是 gen_server, gen_event, gen_fsm。 一个工作进程,通常采用其中的一种或几种行为模式即可。
使用OTP行为包的好处:
1)、 强制程序员以一种避免并发应用程序中的典型错误的方式编写代码。
2)、 整个团队具有共同的编程风格。
3、 应用打包
监控进程+工作进程,这些模块需要被作为一个完整的应用发布,OTP提供了application包来解决打包所面对的共同问题。
结论:
用erlang开发,一定要使用OTP;按照erlang成熟的开发模式走,不要自己造轮子。