18岁的工程师谈 Erlang/OTP(1)


18岁的工程师谈 Erlang/OTP(1)

在网上找到一些Erlang的好东西,作者竟然是个大男孩,可谓自古英雄出少年,一点不假。

米歇尔.哈希莫多( Mitchell Hashimoto ),18岁,华盛顿大学学生。生长在加利福尼亚的 Redondo Beach 市,2007年从“南方高级中学”( South High School )毕业。喜欢棒球,参加了学生自治组织。
 
下面是米歇尔说的“我的那点儿破事儿”(The Nerd In Me)。

10岁开始涉猎计算机科学。学习Visual Basic,写出第一个程序,宠物虫游戏,哄着自己玩儿。

8年后,成天用PHP,做了Zend公司有资格认证的工程师,是Zend Framework Screencasts项目主管。

还天天用Objective-C,以满足苹果机编程兴趣。

前几年的主要兴趣,是研究编程艺术。大量时间用在学习设计模式、编程的好风格、好习惯,以及与团队一起工作,等等。

坚信单元测试、MVC模式的好处,信奉开源软件。

以下是这个大男孩用几个星期完成的系列文章,谈了对复杂的OTP的理解和应用。


简单介绍 OTP (Open Telecom Platform)

OTP 是包装在Erlang中的一组库程序。OTP构成Erlang的行为机制(behaviours),用于编写服务器、有限状态机、事件管理器。不仅如此,OTP的应用行为(the application behavior)允许程序员把写好的Erlang代码打包成一个单独的应用程序;
监测行为(the supervisor behavior )允许程序员创建有层次结构的进程,使得某个进程死后,会重新启动复活。

学习Erlang/OTP的理由

OTP给了你大量通用的库程序,用以轻松创建具有高度容错、热机换码等功能的高质高效的程序。你至少可以免费享受以下好处:

●通用服务器、有限状态机、事件管理器;

●标准化应用程序结构;

●代码热机更换;

●监测树行为机制,让你的进程永不停摆。

除此之外,OTP也是在Erlang之上构建系统平台的标准方式。

大名鼎鼎的Erlang应用,如ejabberd, CouchDB, 和 MochiWeb 等,都是用OTP做的。

因此,通过学习OTP,你不仅可以掌握搭建Erlang系统平台的知识和能力,并且让你能轻松跃入其他开源项目,加以学习,因为它们的总体结构如出一辙。

如果你掌握了Erlang的一般语法,就可以开始学习 Erlang/OTP。

OTP的行为机制 gen_*

● gen_server - 用以创建通用服务器,向多个客户端提供服务;

● gen_fsm - 用以创建有限状态机。我用它搭建了 socket 5 代理服务器,它有以下状态:wait_for_init, wait_for_auth, ready, 以及由不同验证类别产生的其他中间状态。有限状态机还有其他许多用途,这也是我特别喜欢的OTP行为机制;

● gen_event - 用以创建事件处理器和发报器。它最常用于运行错误日志(也是发报器),许多对象(终端、文件等)可与之关联。

监测器行为机制

监测器用于监测、描述其子进程。多个监测器用于创建分层监测机制,让你的进程永不停摆。
需要监测器详细介绍的,可阅读Erlang相关文档。

应用器行为机制

应用器用于启动和停止多个监测器和其他独立单元的进程。例如,在创建socket 5 服务器之后,
我将其置于一个应用程序中,并键入:application:start(socks5_server). 将其启动。
需要应用器详细介绍的,可阅读Erlang相关文档。

后面的话题

本文仅仅是简单介绍OTP。下篇文章综述gen_server,它是我们创建的银行帐户管理程序。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值