V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

这可能是 Erlang 界目前最好的一本书,快要翻译完了,心情很激动

  •  6
     
  •   linjianru · 215 天前 · 5347 次点击
    这是一个创建于 215 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Erlang 很小众,但如此迷人,让人欲罢不能。

    去年,一本名为《 Designing for Scalability with Erlang/OTP 》的高评分“神书”横空出世了,此书主要介绍了两方面的内容:

    • OTP 框架的设计原理以及工作机制(从通用服务器、有限状态机、通用事件管理/处理器、监督树、应用程序,到 Release 级别的打包与热升级等等)
    • 架构高可用系统时的核心方法( Metrics/Log/Alarm/Monitor 、以及各种常见的分布式架构解析,以及 Riak Core 等案例分析)

    特别是第 2 主题,花了五章篇幅,读罢深感精彩。我真的是太佩服二十多年前他们就已经把高可用新系统做到如此完善。而且这些设计方法其实在今天互联网系统设计中完完全全就是同一套东西。真的可说是佩服至极。

    这本书一共 16 章,翻译工作已经大部分完成。月底基本上初稿就完成了。不过还需要做一些校对和调整。但我实在是非常兴奋,虽然我明明知道——

    并没有几个人用 Erlang ,也没有几个人会买这本书……
    

    但是我就是很兴奋啊!哈哈哈哈。我相信很多人都能体会那种读了一本极好的书后内心闪亮而激动的感觉!

    好吧,其实发个贴并没有什么卵用,就让此贴默默沉了吧,我继续赶稿……(哭丧 5 秒)

    (警告:下述内容 18 岁以下不易观看)

    在 Erlang 的世界中探索是充满挑战的,因为它既是一座高山,也是一片海洋。

    而在黑暗中摸索时,即使是最聪明的学生,也需要一盏指路的明灯。而我心目中最闪亮的这盏明灯就是 Erlang 之父 Joe Armstrong 的《 Erlang 程序设计》(由牛化成先生翻译,图灵教育出版,质量很高,值得推荐)。该书从设计的角度深入浅出地介绍了 Erlang 的基本编程方法,以及各种重要的必须理解的设计思想。

    但是一旦你学会了基本的 Erlang 编程方法后,就会意识到,要想真正成为一名强大的 Erlang 工程师,必须精通 OTP 库。但是很遗憾的是,市面上对 OTP 库介绍比较好的书基本没有。唯一的一本《 Erlang/OTP 并发编程实战》(由连城先生翻译,质量也很棒),介绍的可以说是 OTP 的应用实践。但是对于 OTP 本身的一些内容,篇幅难以涵盖。

    这就是为什么《 Designing for Scalability with Erlang/OTP 》让我欲罢不能的原因——

    1 、它是一本 OTP 来龙去脉的圣经指南 2 、它是 Erlang 爱好者到 Erlang 工程师的必经之路

    ……

    ……

    ……

    点击下载 《 Designing for Scalability with Erlang/OTP 》.avi 屠龙宝刀人人送

    哈哈,开个玩笑呢。 Erlang 开发人员们冒个泡吧。

    84 回复  |  直到 2017-09-17 02:58:22 +08:00
        1
    linjianru   215 天前
    天啊,我竟然无法再编辑自己发的贴……想修正一些格式问题的说……(无奈)
        2
    ericls   215 天前 via iPhone
    Erlang 有人用吧

    Actor model 写起来真的舒服

    OTP supervisor gen_server 这一套 elixir 也用得到的
        3
    linjianru   215 天前
    @ericls Elixir 确实关注度很高,不过我还没来得及学习。等之后看看。你们有用吗?
        4
    beiping96   215 天前 via iPad
    Erlang 开发者

    我可以先预定一本签名版的吗?
        5
    ericls   215 天前 via iPhone
    我做过一些 benchmark 在 io bond 的的业务下面 erlang/elixir 非常快 比 golang 稍微差点

    但是写起来太舒服了 而且还有 OTP

    elixir 有一个 ORM 叫 ecto 写起来就像 DSL 爽到爆 而且 validation 这些做得很好

    gen_server 加 gen_udp 做过一个 dht 爬虫 一万多个进程用了 120M 内存
        6
    blanu   215 天前
    静候佳音,如您方便,完成时可 @一下我。
        7
    ericls   215 天前 via iPhone
    @linjianru 我有一个 side project 用的 elixir 。 这是我写得最爽的一个东西。 我 erlang 不是太熟悉 就做过几次 crash course 但是现阶段写 elixir 还是会牵扯到一些 erlang 的东西。

    Erlang 好东西真的太多太多了 自带分布式数存储 还是两个 一个 ets 一个 mnesia

    另外我是真的想好好看看 OTP 。
        8
    linjianru   215 天前
    @beiping96 哈哈,我作为无名人士一枚,还不够格签名版。不过如果到时候你会喜欢这本书的话我会很高兴。谢谢鼓励
        9
    linjianru   215 天前
    @ericls 听你这么说感觉很棒,令人兴奋
        10
    linjianru   215 天前
    @blanu 感谢支持,好的,到时候我会发帖的,并(尽我所能)记得 @ 你。
        11
    des   215 天前 via Android
    讲道理,还是 elixir 用的更爽些
        12
    ericls   215 天前
    @des elixir 是唯一一个写着会高潮的语言
        13
    des   215 天前 via Android
    @ericls 大兄弟,要不试试它借鉴的 Ruby ?
        14
    iot   215 天前
    好 有机会看看 还有一本是 http://learnyousomeerlang.com
        15
    iot   215 天前
    这本书一共才 355 页??
        16
    ericls   215 天前
    @des 你确定?? 这两者完全不一样好吗??? 你写过 elixir 吗?

    ruby 有 gen_server 有 otp 吗? 除了语法有点一样之外 其他完全不一样
        17
    des   215 天前 via Android
    @ericls 不,我只是说语法
        18
    aheadlead   215 天前 via iPhone
    来个京东链接嘛
        19
    zjlin1984   215 天前
    坐等出版,楼走记得通知哦。
        20
    TangMonk   215 天前 via Android
    什么时候翻译下 learnyousomeerlang
        21
    stupil   215 天前
    坐等出版。
        22
    JamesRuan   215 天前
    正打算入影印版,但是看了目录感觉并不是特别有吸引力,不知道有没有样章可以看。
        23
    JamesRuan   215 天前   ♥ 2
    @TangMonk 已经有出版了, Erlang 趣学指南。
        25
    smallHao   215 天前 via Android
    评价一下跟 go 比的优劣?
        26
    jatsz   215 天前
    关注,设计本身是超越语言的,只要思想够简单,套用到其他语言也是分分钟的事情。
    很早的时候我设计的一个多用户通信功能,借用的就是 Erlang 的 Mailbox 的设计。
        27
    momocraft   215 天前
    不会 erlang ,不过看 erlang 的一些介绍觉得挺有意思的。期待出版。
        28
    jsjjdzg   215 天前
    是要出实体版?
        29
    littleshy   215 天前
    erlang 的语法……
    了解了 OTP 后,还是用 Elixir 吧。
        30
    lianz   215 天前
    erlang 的思想很好很合我胃口
    erlang 的 OTP 框架很完善很合我胃口
    然而我巨他妈讨厌 erlang 的语法
        31
    TangMonk   215 天前
    @hcymk2 厉害了,这是我好早之前发的 issue 了
        32
    ainimuyan   215 天前
    当然要买了,我还能说什么,不过我用的 Scala+Akka 。。。
        33
    justfly   215 天前
    楼主出版通知下 我会买
        34
    hepin1989   215 天前
    是人民邮电的还是图灵还是?
        35
    hjkl0001   215 天前
    路过的,看着蛮有意思的语言。。。
        36
    Kabie   215 天前
    Elixir 用户路过……

    @lianz 语法上看不下去 erlang 的话……可以来试试 Elixir
    @des ruby 的元编程没有 Elixir 酷炫。。。
    @ainimuyan 写过一个用 akka 的项目。。。 scala 是很好的。。。可惜 jvm 毕竟不是 beam 。。。
        37
    hepin1989   215 天前
    @linjianru 请问是哪个出版社的呢?
        38
    TangMonk   215 天前
    @Kabie 发现了另一个基于 Erlang VM 的语言, https://github.com/alpaca-lang/alpaca (羊驼)
        39
    Numbcoder   215 天前
    坐等出版
        40
    likuku   215 天前
    @linjianru 新来的吧?抽空看下 V2EX 的使用说明,这里发帖(几分钟内可以修改,之后原帖锁定,只可以追加内容)回帖都是不可以修改删除的。
        41
    nanlong   215 天前
    不知道啥时候出版,如出必买。
        42
    markx   215 天前
    听起来很爽!
        43
    flowerwrong   215 天前 via iPhone
    坐等
        44
    linjianru   215 天前
    @iot 英文版 PDF 一共 482 页。
        45
    linjianru   215 天前
    @aheadlead 还没出版,刚要翻译完初稿而已,哈哈,还需要校对和排版。不过快了
        46
    iot   215 天前
    @linjianru 求共享一份英文版 pdf
        47
    linjianru   215 天前
    @zjlin1984 好的没问题
        48
    xiahei   215 天前 via Android
    LZ 幸苦了!
        49
    entertainyou   215 天前
    支持楼主.
        50
    jukka   215 天前
    一个帖子炸出来这么多 Erlang/Elixir er, 出版了请务必在 Erlang/Elixir mailinglist 里告知!:)
        51
    FunctionOne   215 天前
    听说有个业界大牛抛弃了 Erlang 转投 Go 了。不清楚里面的真想。
        52
    Raincal   215 天前 via Android
    路过帮顶~学了 Elixir ,还没怎么看 Erlang...
        53
    linjianru   215 天前
    @zjlin1984 好的好的
        54
    linjianru   215 天前
    @TangMonk 希望有机会
        55
    seamon   215 天前
    写了 10 年 ruby 的表示现在基本都是在用 elixir 写东西了
        56
    linjianru   215 天前
    @stupil 哈哈好的我会第一时间通知
        58
    linjianru   215 天前
    @smallHao 各有优势。如果是容错的分布式系统设计, Erlang 会更适合,特别是在容错方面, Erlang 有一整套完善的设计,目前没有任何语言可以与之媲美。对于长期运行不允许中断,还要不断升级的系统来说, Erlang 提供了完善的支持。

    我也很喜欢 Go ,并且它在其他方面比如 Web 开发就比 Erlang 适合( Elixir 我不熟悉就不比了),另外对于需要结合系统底层 API 的情况, Go 也比 Erlang 方便得多。还有对于工具型软件开发, Go 也相当胜任。

    话说回来 Erlang 实现的全部并发啊,容错啊之类的机制,其实用其他语言也是能做到的,包括热更新。不过写起来 Erlang 只需要 1/5~1/10 的代码(别人写三万行,你写三五千行,想想这偷懒偷的一个爽)。很简洁,很好维护。这是最吸引我的地方。

    Erlang 很难被一般语言取代,深层次的原因有三个:

    * Erlang 采用了不可变数据设计,而大部分包括 Go 依然是可变数据设计
    * Erlang 的 GC 很特殊,能够达到软实时级别,而其他大众语言的 GC 很难做到:
    https://www.zhihu.com/question/42555311/answer/139257723#
    * Erlang 经过了电信行业二十多年的洗礼,证明了其在高可用性领域的有效性

    但是 Erlang 也不是万能的,比如:

    * Rust 就不是 Erlang 能替代的,工作层面上来说 Erlang 只适合更加宏观的领域
    * Erlang 的代码非常平易近人,易读性比 Python 要更好,但是也正因此语言结构上基本上没有太多的抽象能力
    * 能理解和认可 Erlang 的程序员真的很少啊,这是个很现实的问题

    絮絮叨叨说这么多,说错见谅。
        59
    linjianru   215 天前
    @jatsz 是的,确实是有时候更重要的是思想层面的启发性。毕竟这是通用的。
        60
    linjianru   215 天前
    @momocraft 谢谢支持
        61
    linjianru   215 天前
    @littleshy 哈哈,可能 Erlang 口味确实不符合你的习惯,我也花了一些时间适应
        62
    linjianru   215 天前
    @lianz 哈哈主要是哪方面让你觉得不舒服呢?
        63
    hhkbp2   215 天前
    Erlang 业余爱好者冒个泡,支持一下,好书总是会发光的
        64
    smallHao   215 天前
    @linjianru 感谢认真回复 在我看来 Erlang 是一个设计精良而且定位明确的语言 设计思想必然会对之后的语言产生深远的影响 就如当时如日中天的 Lisp
        65
    scarlex   215 天前 via iPhone
    作为 elixir 爱好者一定要支持这个啊
        66
    TimLang   215 天前 via Android
    楼主敢出我就敢买,现在用了 elixir 后已经才发现新的大门打开了。。
        67
    jadecoder   215 天前
    有兴趣啊,虽然还没用过 erlang
        68
    TimLang   215 天前 via Android
    @des 光是模式匹配就完爆了,楼上说的 ecto 多研究下,就知道比 active record 不知道高明多少。
        69
    wanjun   215 天前 via iPad
        70
    sorra   215 天前
    感兴趣,用 Akka 时可参考
        71
    linjianru   214 天前
    @likuku 好的谢谢,确实是没注意到。我去看看
        72
    zjlin1984   214 天前
    看回复也是挺有意思的。
        73
    hepin1989   214 天前
    @linjianru 请问可以联系到您么,或者这本书是哪个出版社的呢?我们这边是 Akka 圈儿的.
        74
    linjianru   214 天前
    @hepin1989 博文视点。抱歉没及时恢复你。我的联系方式么, QQ 2696834883
        75
    linjianru   214 天前
    @TimLang 哈哈感谢支持
        76
    hepin1989   213 天前
    @linjianru 感谢哈,翻译不容易!
        77
    hepin1989   213 天前
    @linjianru 还是您加我吧,281174180,您需要真实姓名
        78
    linjianru   212 天前
    @hepin1989 加你需要你的电话号码,哈哈,咱俩死锁了。我已经解除了限制,要不你再试试?或者你告诉我你电话也行。
        79
    qgymje   212 天前
    支持, 出版了马上买一本
        80
    linjianru   212 天前
    @qgymje 非常感谢支持,一起学习一起进步!
        81
    jatsz   100 天前
    @linjianru 出版了没有,等着购买呢:)
        82
    linjianru   97 天前
    @jatsz 捂脸……还需要点时间
        83
    parkcg   73 天前
    目前是 Elixir 的吃瓜群众,有必要学习 Erlang 吗
        84
    wineway   62 天前 via Android
    楼主可以给个大概时间么…考虑下是等中文版还是开坑原版
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   876 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 71ms · UTC 17:47 · PVG 01:47 · LAX 09:47 · JFK 12:47
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1