结论
几句话
我看到你最终选择阅读结论。很好。在我开始向你推荐一些有趣的话题,以及如果你选择 Erlang 作为想要学习的开发语言,你应该探索哪些内容之前,我想花几行文字说,编写《学 Erlang》这本书,真是一个奇妙的旅程。我花了三年的时间,一边学习一边全职工作,还要兼顾日常生活所需(如果我有孩子,他们现在早就被我忽视死了)。
这个网站,再加上一些运气和更多的努力,让我获得了工作机会,包括 Erlang 培训师、课程材料编写者和开发人员。它让我有机会周游世界,结识了许多有趣的人。它消耗了大量的能量,让我花了不少钱和时间运营,但它在大多数方面都带来了十倍的回报。
我必须对整个 Erlang 社区表示衷心的感谢。他们帮助我学习,免费审查了我的大量材料,纠正了我的错误,帮助我提高英语写作和写作技巧。有数十人以多种方式提供了帮助。时间、建议和资源贡献最多的几个参与者都在本网站的 常见问题解答 页面中列出。如果你曾经给我发过邮件,说要请我喝一杯,那就把酒钱给这些人吧;他们值得拥有,因为他们参与的贡献比我的贡献更加无私。
整个 Erlang 社区对我在 LYSE 上的工作非常欢迎,帮助它被读者所知(它甚至出现在 Erlang 的官方文档和网站上!)。如果没有所有围绕着 Erlang 的人的共同努力,这个网站可能在写完四五章之后就死了,成为另一个阻塞互联网管道无用网站。所以,嘿,谢谢。
其他话题
我只能在不超过顶峰的情况下涵盖这么多主题。如果把这个网站变成纸质书,现在可能会有 600 页左右。我花了三年时间才把它写出来,我已经感到疲惫了,我很高兴它结束了(我现在要拿这些空闲时间来做什么呢?),但我仍然有很多想要涵盖的话题。下面列出了一个简短的清单。
跟踪 BIF 和 DBG
Erlang VM 的内部和外部都是可追踪的。遇到 bug 或无法理解的堆栈跟踪?开启几个 跟踪标志,VM 就会向你敞开大门。 DBG 在这些 BIF 的基础上构建了一个应用程序。消息、函数调用、函数返回、垃圾回收、进程生成和死亡等等。所有这些都是可跟踪和可观察的。它也比任何针对并发语言(如 Erlang)的调试器都更加有效。最棒的是?它可以在 Erlang 内部进行跟踪,因此你可以编写可以自我跟踪的 Erlang 程序!如果你深入研究它们,发现它们有点难消化,那么你可以考虑使用 sys
模块的跟踪函数。它们只适用于 OTP 行为化的进程,但通常足以让你入门。
性能分析
Erlang 附带了一系列不同的性能分析工具,用于分析你的程序并找出各种瓶颈。 fprof 和 eprof 工具可用于时间性能分析,cprof 用于函数调用,lcnt 用于锁,percept 用于并发性,cover 用于代码覆盖率。有趣的是,它们大多数都是使用该语言的跟踪 BIF 构建的。
更多内省
Erlang 存在类似 top 的工具,例如 pman 和 etop。你也可以使用 Erlang 调试器,但我建议使用 DBG 而不是它。要探索节点的整个监控树,appmon 是你的首选工具。
文档
EDoc 是一种工具,可将你的 Erlang 模块转换成 HTML 文档。它支持注释和声明特定页面的方法,使你能够构建小型网站来记录你的代码。如果你听说过 Javadoc,它与之类似。
GUI
Wx 应用程序是使用 Erlang 编写跨平台 GUI 的新标准。我对 GUI 方面很糟糕,所以对于我实际上没有介绍它,对每个人来说可能都是好事。
其他有用库
Erlang 默认附带了许多此处未提及的优秀库。加密工具、Web 服务器、Web 客户端、各种协议实现等等。你可以在 https://erlang.ac.cn/doc/applications.html 上找到它们的完整列表。
社区库
社区库非常多。我不想介绍它们,因为它们经常发生变化,我不想偏袒任何一个库,但这里列出了几个:Rebar3 和 erlang.mk 是构建系统,redbug 或 recon 是对跟踪的更友好的方法,gproc 是一个非常强大且灵活的进程注册表,mochiweb、cowboy 和 yaws 是 Web 服务器,riak_core 是一个非常强大的 Erlang 分布库,hackney 是一个 Web 客户端,PropEr、Quickcheck 和 Triq 是很棒的基于属性的测试工具(你必须尝试一下其中一个),entop 是一个类似 top 的工具,有大量的 JSON 库(jsx、jiffy 等),UX 用于 Unicode 处理和 R16B 中的常用算法,Seresye 和 exat 用于一些 AI 工具,数据库客户端库,lager 是一种非常强大的日志系统,它与 Erlang 的 error_logger 绑定,poolboy 用于一些通用的基于消息的池,以及更多其他内容。社区库可以轻松地出一本书。
我听说 LYSE 也是一本书?
你说对了。感谢 No Starch Press,《学 Erlang》这本书现在已经出版了 纸质书和电子书!这本大部头书有 600 页黑白页,包括图片(电子书版本为彩色),现在你可以拥有目前最大型的以 Erlang 为主题的镇纸和书架装饰品(据我所知)。这应该可以缓解在电脑屏幕上阅读数百页带来的眼睛疲劳。
你的想法对我很有吸引力,我想订阅你的时事通讯
我在 ferd.ca 上有一个博客,在那里我讨论各种事情(或者至少我想讨论),但不可避免地会回到 Erlang 主题,因为我一直都在使用它。
就这些吗?
是的,就是这样。祝您有美好的一天!