免责声明:作者是 OTP 的新手,对 Erlang 的语法、流程和消息有一些基本的了解。
我试图掌握 Erlang 中行为的概念,但我脑海中浮现出许多问题,使我无法理解像 gen_server 这样的行为的整个原理。
好的,gen_server 的官方文档显示了一个服务器和三个客户端连接的漂亮图表,用查询和回复箭头连接: http ://www.erlang.org/doc/design_principles/gen_server_concepts.html
但是每次我试图进一步理解这个概念时,我都会陷入困境。
有很多概念我无法在脑海中构建成一个更大的概念:
- 行为实现;
- 行为容器;
- 行为界面;
- 回调模块;
- 回调函数;
- API 函数。
我使用以下资源:
- Erlang/OTP 实战书;
- OTP 行为介绍介绍,http://www.slideshare.net/gamlidek/ceug-introduction-to-otp-behaviors-part-i-genserver;
- http://spawnlink.com/articles/an-introduction-to-gen_server-erlybank/index.html上的“ErlyBank” 。
我仍然处于“我们在一个模块中调用一个函数,该函数调用另一个函数,该函数创建一个进程......卡住”的状态
有没有办法在图表中描述 gen_server 的概念?如何直观地显示客户端和服务器之间的交互流程?(帮助一个不太聪明的新手直观地理解这个概念)
例如像这里:http: //support.novell.com/techcenter/articles/img/dnd2003080506.gif
UPD:我尝试绘制自己的图表,但我仍然不明白图表中任何连接器的用途:http: //postimage.org/image/qe215ric/full/
UPD2:这与我希望看到的类似: http: //cryptoaarchy.org/wiki/Worker_patterns(模型)。但是,它没有显示模块、函数和进程之间的交互。