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

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

  •  6
     
  •   linjianru · 2017-04-17 04:00:08 +08:00 · 11682 次点击
    这是一个创建于 2778 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 开发人员们冒个泡吧。

    90 条回复    2023-07-09 20:08:16 +08:00
    linjianru
        1
    linjianru  
    OP
       2017-04-17 04:16:56 +08:00
    天啊,我竟然无法再编辑自己发的贴……想修正一些格式问题的说……(无奈)
    ericls
        2
    ericls  
       2017-04-17 04:24:21 +08:00 via iPhone
    Erlang 有人用吧

    Actor model 写起来真的舒服

    OTP supervisor gen_server 这一套 elixir 也用得到的
    linjianru
        3
    linjianru  
    OP
       2017-04-17 04:31:22 +08:00
    @ericls Elixir 确实关注度很高,不过我还没来得及学习。等之后看看。你们有用吗?
    beiping96
        4
    beiping96  
       2017-04-17 04:32:41 +08:00 via iPad
    Erlang 开发者

    我可以先预定一本签名版的吗?
    ericls
        5
    ericls  
       2017-04-17 04:33:14 +08:00 via iPhone
    我做过一些 benchmark 在 io bond 的的业务下面 erlang/elixir 非常快 比 golang 稍微差点

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

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

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

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

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

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

    @lianz 语法上看不下去 erlang 的话……可以来试试 Elixir
    @des ruby 的元编程没有 Elixir 酷炫。。。
    @ainimuyan 写过一个用 akka 的项目。。。 scala 是很好的。。。可惜 jvm 毕竟不是 beam 。。。
    hepin1989
        37
    hepin1989  
       2017-04-17 10:19:49 +08:00
    @linjianru 请问是哪个出版社的呢?
    TangMonk
        38
    TangMonk  
       2017-04-17 10:27:10 +08:00
    @Kabie 发现了另一个基于 Erlang VM 的语言, https://github.com/alpaca-lang/alpaca (羊驼)
    Numbcoder
        39
    Numbcoder  
       2017-04-17 11:21:21 +08:00
    坐等出版
    likuku
        40
    likuku  
       2017-04-17 11:25:04 +08:00
    @linjianru 新来的吧?抽空看下 V2EX 的使用说明,这里发帖(几分钟内可以修改,之后原帖锁定,只可以追加内容)回帖都是不可以修改删除的。
    nanlong
        41
    nanlong  
       2017-04-17 11:58:38 +08:00
    不知道啥时候出版,如出必买。
    markx
        42
    markx  
       2017-04-17 12:22:05 +08:00
    听起来很爽!
    flowerwrong
        43
    flowerwrong  
       2017-04-17 13:01:55 +08:00 via iPhone
    坐等
    linjianru
        44
    linjianru  
    OP
       2017-04-17 14:07:24 +08:00
    @iot 英文版 PDF 一共 482 页。
    linjianru
        45
    linjianru  
    OP
       2017-04-17 14:08:54 +08:00
    @aheadlead 还没出版,刚要翻译完初稿而已,哈哈,还需要校对和排版。不过快了
    iot
        46
    iot  
       2017-04-17 14:09:31 +08:00
    @linjianru 求共享一份英文版 pdf
    linjianru
        47
    linjianru  
    OP
       2017-04-17 14:11:04 +08:00
    @zjlin1984 好的没问题
    xiahei
        48
    xiahei  
       2017-04-17 14:25:04 +08:00 via Android
    LZ 幸苦了!
    entertainyou
        49
    entertainyou  
       2017-04-17 14:27:14 +08:00
    支持楼主.
    jukka
        50
    jukka  
       2017-04-17 14:39:56 +08:00
    一个帖子炸出来这么多 Erlang/Elixir er, 出版了请务必在 Erlang/Elixir mailinglist 里告知!:)
    FunctionOne
        51
    FunctionOne  
       2017-04-17 16:27:50 +08:00
    听说有个业界大牛抛弃了 Erlang 转投 Go 了。不清楚里面的真想。
    Raincal
        52
    Raincal  
       2017-04-17 16:37:28 +08:00 via Android
    路过帮顶~学了 Elixir ,还没怎么看 Erlang...
    linjianru
        53
    linjianru  
    OP
       2017-04-17 17:14:48 +08:00
    @zjlin1984 好的好的
    linjianru
        54
    linjianru  
    OP
       2017-04-17 17:15:16 +08:00
    @TangMonk 希望有机会
    seamon
        55
    seamon  
       2017-04-17 17:15:47 +08:00
    写了 10 年 ruby 的表示现在基本都是在用 elixir 写东西了
    linjianru
        56
    linjianru  
    OP
       2017-04-17 17:15:50 +08:00
    @stupil 哈哈好的我会第一时间通知
    linjianru
        57
    linjianru  
    OP
       2017-04-17 17:18:38 +08:00
    linjianru
        58
    linjianru  
    OP
       2017-04-17 17:40:17 +08:00
    @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 的程序员真的很少啊,这是个很现实的问题

    絮絮叨叨说这么多,说错见谅。
    linjianru
        59
    linjianru  
    OP
       2017-04-17 17:41:11 +08:00
    @jatsz 是的,确实是有时候更重要的是思想层面的启发性。毕竟这是通用的。
    linjianru
        60
    linjianru  
    OP
       2017-04-17 17:41:30 +08:00
    @momocraft 谢谢支持
    linjianru
        61
    linjianru  
    OP
       2017-04-17 17:42:39 +08:00
    @littleshy 哈哈,可能 Erlang 口味确实不符合你的习惯,我也花了一些时间适应
    linjianru
        62
    linjianru  
    OP
       2017-04-17 17:43:18 +08:00
    @lianz 哈哈主要是哪方面让你觉得不舒服呢?
    hhkbp2
        63
    hhkbp2  
       2017-04-17 19:56:58 +08:00
    Erlang 业余爱好者冒个泡,支持一下,好书总是会发光的
    smallHao
        64
    smallHao  
       2017-04-17 20:02:08 +08:00
    @linjianru 感谢认真回复 在我看来 Erlang 是一个设计精良而且定位明确的语言 设计思想必然会对之后的语言产生深远的影响 就如当时如日中天的 Lisp
    scarlex
        65
    scarlex  
       2017-04-17 20:35:36 +08:00 via iPhone
    作为 elixir 爱好者一定要支持这个啊
    TimLang
        66
    TimLang  
       2017-04-17 20:42:51 +08:00 via Android
    楼主敢出我就敢买,现在用了 elixir 后已经才发现新的大门打开了。。
    jadecoder
        67
    jadecoder  
       2017-04-17 20:45:21 +08:00
    有兴趣啊,虽然还没用过 erlang
    TimLang
        68
    TimLang  
       2017-04-17 20:50:40 +08:00 via Android
    @des 光是模式匹配就完爆了,楼上说的 ecto 多研究下,就知道比 active record 不知道高明多少。
    wanjun
        69
    wanjun  
       2017-04-17 21:21:45 +08:00 via iPad
    sorra
        70
    sorra  
       2017-04-17 22:34:17 +08:00
    感兴趣,用 Akka 时可参考
    linjianru
        71
    linjianru  
    OP
       2017-04-18 04:09:11 +08:00
    @likuku 好的谢谢,确实是没注意到。我去看看
    zjlin1984
        72
    zjlin1984  
       2017-04-18 08:26:15 +08:00
    看回复也是挺有意思的。
    hepin1989
        73
    hepin1989  
       2017-04-18 13:09:45 +08:00
    @linjianru 请问可以联系到您么,或者这本书是哪个出版社的呢?我们这边是 Akka 圈儿的.
    linjianru
        74
    linjianru  
    OP
       2017-04-18 15:44:21 +08:00
    @hepin1989 博文视点。抱歉没及时恢复你。我的联系方式么, QQ 2696834883
    linjianru
        75
    linjianru  
    OP
       2017-04-18 15:44:49 +08:00
    @TimLang 哈哈感谢支持
    hepin1989
        76
    hepin1989  
       2017-04-19 18:33:02 +08:00
    @linjianru 感谢哈,翻译不容易!
    hepin1989
        77
    hepin1989  
       2017-04-19 18:35:09 +08:00
    @linjianru 还是您加我吧,281174180,您需要真实姓名
    linjianru
        78
    linjianru  
    OP
       2017-04-20 10:20:13 +08:00
    @hepin1989 加你需要你的电话号码,哈哈,咱俩死锁了。我已经解除了限制,要不你再试试?或者你告诉我你电话也行。
    qgymje
        79
    qgymje  
       2017-04-20 10:20:18 +08:00
    支持, 出版了马上买一本
    linjianru
        80
    linjianru  
    OP
       2017-04-20 10:22:11 +08:00
    @qgymje 非常感谢支持,一起学习一起进步!
    jatsz
        81
    jatsz  
       2017-08-10 17:27:44 +08:00
    @linjianru 出版了没有,等着购买呢:)
    linjianru
        82
    linjianru  
    OP
       2017-08-13 19:12:40 +08:00
    @jatsz 捂脸……还需要点时间
    parkcg
        83
    parkcg  
       2017-09-06 08:51:05 +08:00
    目前是 Elixir 的吃瓜群众,有必要学习 Erlang 吗
    wineway
        84
    wineway  
       2017-09-17 02:58:22 +08:00 via Android
    楼主可以给个大概时间么…考虑下是等中文版还是开坑原版
    Cifery
        85
    Cifery  
       2018-05-05 10:22:37 +08:00
    今天发现 《 Designing for Scalability with Erlang/OTP 》 作者发推说中文版要出了,这次是真要出了吧,虽然英文版我买了一本已经读完了,不过还是很期待你的翻译,看看你发帖的时间,已经等了一年了啊
    qgymje
        86
    qgymje  
       2018-06-01 10:33:04 +08:00
    已经预购了,7 月 20 号发货,英文版已阅一半,理解 OTP 的好书。
    tony612
        87
    tony612  
       2018-07-04 00:09:34 +08:00
    已买。7.16 发货
    ff51fox
        88
    ff51fox  
       2018-07-07 19:20:44 +08:00
    中文版交什么名字?
    absente
        89
    absente  
       2018-08-28 21:44:04 +08:00
    不错。收藏了
    putaozhenhaochi
        90
    putaozhenhaochi  
       2023-07-09 20:08:16 +08:00 via iPhone
    牛逼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:14 · PVG 01:14 · LAX 09:14 · JFK 12:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.