Lessons: Advanced
Taking our knowledge to the next level, these lessons get cover the advanced topics of Elixir and the BEAM.
OTP 并发
我们已经看过了 Elixir 层的并发抽象机制,但有时候我们需要更多的控制,那就要了解 Elixir 底层的东西:OTP 行为(behaviors)。
在这一课中,我们将专注于最大的一块:GenServers
OTP Supervisors
Supervisors 是一种特殊的进程:专门来监控其他的进程。supervisors 能够自动重启出错的子进程,从而编写容错性高的程序。
元编程
元编程是指用代码来写代码的过程。在 Elixir 中,这说明我们可以扩展该语言,动态地修改该语言来满足我们的需求。我们会先看看 Elixir 底层是怎么实现的,然后讲怎么修改它,最后会使用刚学过的知识来扩展它。
忠告:元编程不容易用好,只有在绝对需要的时候才去使用它。过度使用元编程会导致代码很复杂,不容易理解和调试
Umbrella Projects
实际上有时工程项目会变得很大. Mix 构建工具可以让我们将代码划分成多个程序, 使得项目变大的时候更易于管理.
Specifications and types
这节课我们学习 @spec
和 @type
语法. @spec
不仅仅是一个写文档的语法补充, 它还可以被工具用来进行分析. @type
则帮助我们写更易读易懂的代码.
行为
我们在前面的课程学习了类型和 specification。那么,这一章我们将学习如何引用一个模块来实现那些 specification。在 Elixir 里,这个功能被称之为行为。
协议
我们将在本课程看看 Elixir 里面的协议到底是什么,以及如何使用。