Lessons: Advanced

Taking our knowledge to the next level, these lessons get cover the advanced topics of Elixir and the BEAM.

我们已经看过了 Elixir 层的并发抽象机制,但有时候我们需要更多的控制,那就要了解 Elixir 底层的东西:OTP 行为(behaviors)。

在这一课中,我们将专注于最大的一块:Genservers。

Supervisors 是一种特殊的进程:专门来监控其他的进程。supervisors 能够自动重启出错的子进程,从而编写容错性高的程序。

分布式简介

我们可以把我们的 Elixir 应用运行分布在单主机,或者多主机的不同的节点上。Elixir 允许这些不同的节点通过以下课程中列出来的不同的机制来相互通信。

元编程是指用代码来写代码的过程。在 Elixir 中,这说明我们可以扩展该语言,动态地修改该语言来满足我们的需求。我们会先看看 Elixir 底层是怎么实现的,然后讲怎么修改它,最后会使用刚学过的知识来扩展它。

忠告:元编程不容易用好,只有在绝对需要的时候才去使用它。过度使用元编程会导致代码很复杂,不容易理解和调试。

实际上有时工程项目会变得很大. Mix 构建工具可以让我们将代码划分成多个程序, 使得项目变大的时候更易于管理.

这节课我们学习 @spec@type 语法. @spec 不仅仅是一个写文档的语法补充, 它还可以被工具用来进行分析. @type 则帮助我们写更易读易懂的代码.

我们在前面的课程学习了类型和 specification。那么,这一章我们将学习如何引用一个模块来实现那些 specification。在 Elixir 里,这个功能被称之为行为。

我们将在本课程看看 Elixir 里面的协议到底是什么,以及如何使用。