IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    notes of learning erlang

    hugozen发表于 2017-03-05 02:54:22
    love 0

    背景

    之前因为要想实现一个基于DHT网络的站,就找了一些代码实现,发现一个前辈写的erlang实现,好奇也看了起来,顺便学了下erlang。

    感悟

    • erlang 太有趣啦,通过模拟进程创建,看到内存和CPU资源是怎么被吃掉的,給人很直觀的感覺哇~而且erlang同时支持事务和热代码替换,这两项特性碉堡了啊!!!
    • erlang的并发编程模式,其实我觉得写起来还是读起来都非常的通俗,上手也不难,但有些约定有点反人类,或者语法有点多,约定俗成的东西还要靠看书来回忆…
    • erlang的并发编程模式,有两个关键的地方:server端本身的loop无限循环;提供对外进行调用的rpc接口. 一开始我对rpc的概念是不清楚的,现在可好了,原来它是把客户端发送过来的请求,做了一个转发.
    • 那转发给谁呢? 我猜如果是BS架构的话,rpc就转发给对应的server”进程”,然后receive轮询,等待对应的pid返回处理结果,rpc再转发回去
    • erlang对网络编程的语言层面的支持非常漂亮,对字节的处理都很舒服,隐藏了很多细节
    • erlang三大件
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      面向消息的编程范式(函数式编程风格)
      OTP
      行为接口(behaviour interface)
      gen_server
      [init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]
      application
      ….
      ….
      行为实现(behaviour implementation)
      应用程序的逻辑就堆在这里面
      行为容器(behaviour container)
      节点式程序模型
      程序树
      容错
      分布式
      热切换

    资料

    • Erlang OTP 设计原理文档
    • [推荐] Rabbitmq的网络层要点浅析


沪ICP备19023445号-2号
友情链接