结论

几句话

我看到你最终选择阅读结论。很好。在我开始向你推荐一些有趣的话题,以及如果你选择 Erlang 作为想要学习的开发语言,你应该探索哪些内容之前,我想花几行文字说,编写《学 Erlang》这本书,真是一个奇妙的旅程。我花了三年的时间,一边学习一边全职工作,还要兼顾日常生活所需(如果我有孩子,他们现在早就被我忽视死了)。

这个网站,再加上一些运气和更多的努力,让我获得了工作机会,包括 Erlang 培训师、课程材料编写者和开发人员。它让我有机会周游世界,结识了许多有趣的人。它消耗了大量的能量,让我花了不少钱和时间运营,但它在大多数方面都带来了十倍的回报。

我必须对整个 Erlang 社区表示衷心的感谢。他们帮助我学习,免费审查了我的大量材料,纠正了我的错误,帮助我提高英语写作和写作技巧。有数十人以多种方式提供了帮助。时间、建议和资源贡献最多的几个参与者都在本网站的 常见问题解答 页面中列出。如果你曾经给我发过邮件,说要请我喝一杯,那就把酒钱给这些人吧;他们值得拥有,因为他们参与的贡献比我的贡献更加无私。

整个 Erlang 社区对我在 LYSE 上的工作非常欢迎,帮助它被读者所知(它甚至出现在 Erlang 的官方文档和网站上!)。如果没有所有围绕着 Erlang 的人的共同努力,这个网站可能在写完四五章之后就死了,成为另一个阻塞互联网管道无用网站。所以,嘿,谢谢。

其他话题

我只能在不超过顶峰的情况下涵盖这么多主题。如果把这个网站变成纸质书,现在可能会有 600 页左右。我花了三年时间才把它写出来,我已经感到疲惫了,我很高兴它结束了(我现在要拿这些空闲时间来做什么呢?),但我仍然有很多想要涵盖的话题。下面列出了一个简短的清单。

跟踪 BIF 和 DBG

Erlang VM 的内部和外部都是可追踪的。遇到 bug 或无法理解的堆栈跟踪?开启几个 跟踪标志,VM 就会向你敞开大门。 DBG 在这些 BIF 的基础上构建了一个应用程序。消息、函数调用、函数返回、垃圾回收、进程生成和死亡等等。所有这些都是可跟踪和可观察的。它也比任何针对并发语言(如 Erlang)的调试器都更加有效。最棒的是?它可以在 Erlang 内部进行跟踪,因此你可以编写可以自我跟踪的 Erlang 程序!如果你深入研究它们,发现它们有点难消化,那么你可以考虑使用 sys 模块的跟踪函数。它们只适用于 OTP 行为化的进程,但通常足以让你入门。

性能分析

Erlang 附带了一系列不同的性能分析工具,用于分析你的程序并找出各种瓶颈。 fprofeprof 工具可用于时间性能分析,cprof 用于函数调用,lcnt 用于锁,percept 用于并发性,cover 用于代码覆盖率。有趣的是,它们大多数都是使用该语言的跟踪 BIF 构建的。

更多内省

Erlang 存在类似 top 的工具,例如 pmanetop。你也可以使用 Erlang 调试器,但我建议使用 DBG 而不是它。要探索节点的整个监控树,appmon 是你的首选工具。

文档

EDoc 是一种工具,可将你的 Erlang 模块转换成 HTML 文档。它支持注释和声明特定页面的方法,使你能够构建小型网站来记录你的代码。如果你听说过 Javadoc,它与之类似。

GUI

Wx 应用程序是使用 Erlang 编写跨平台 GUI 的新标准。我对 GUI 方面很糟糕,所以对于我实际上没有介绍它,对每个人来说可能都是好事。

其他有用库

Erlang 默认附带了许多此处未提及的优秀库。加密工具、Web 服务器、Web 客户端、各种协议实现等等。你可以在 https://erlang.ac.cn/doc/applications.html 上找到它们的完整列表。

社区库

社区库非常多。我不想介绍它们,因为它们经常发生变化,我不想偏袒任何一个库,但这里列出了几个:Rebar3erlang.mk 是构建系统,redbugrecon 是对跟踪的更友好的方法,gproc 是一个非常强大且灵活的进程注册表,mochiwebcowboyyaws 是 Web 服务器,riak_core 是一个非常强大的 Erlang 分布库,hackney 是一个 Web 客户端,PropErQuickcheckTriq 是很棒的基于属性的测试工具(你必须尝试一下其中一个),entop 是一个类似 top 的工具,有大量的 JSON 库(jsxjiffy 等),UX 用于 Unicode 处理和 R16B 中的常用算法,Seresyeexat 用于一些 AI 工具,数据库客户端库,lager 是一种非常强大的日志系统,它与 Erlang 的 error_logger 绑定,poolboy 用于一些通用的基于消息的池,以及更多其他内容。社区库可以轻松地出一本书。

我听说 LYSE 也是一本书?

你说对了。感谢 No Starch Press,《学 Erlang》这本书现在已经出版了 纸质书和电子书!这本大部头书有 600 页黑白页,包括图片(电子书版本为彩色),现在你可以拥有目前最大型的以 Erlang 为主题的镇纸和书架装饰品(据我所知)。这应该可以缓解在电脑屏幕上阅读数百页带来的眼睛疲劳。

你的想法对我很有吸引力,我想订阅你的时事通讯

我在 ferd.ca 上有一个博客,在那里我讨论各种事情(或者至少我想讨论),但不可避免地会回到 Erlang 主题,因为我一直都在使用它。

就这些吗?

是的,就是这样。祝您有美好的一天!