分类 Elixir 下的文章


Elixir 的一大卖点就是对并发的支持。得益于 Erlang VM (BEAM),Elixir
的并发要比预期中简单得多。这个并发模型的基础是
Actors:通过消息传递来交互的进程(译者注:这个进程不是通常所说的操作系统级别的进程,可以理解为 Erlang VM (BEAM)
自己管理的轻量级进程)。

这节课,我们会讲 Elixir 自带的并发模型。在后面的章节中,我们还会介绍底层的实现机制:OTP 行为(behaviors)。

进程

Erlang VM (BEAM) 的进程很轻量级,可以运行在所有 CPU 上。看起来有点像原生的线程,但是它们更简单,而且同时运行几千个 Elixir 进程也是常事。

Read more...


要想在 Elixir 中生成可执行文件,我们要用 escript,escript 会生成的可执行文件,可以运行在任何安装了 Erlang
的平台。

用 escript 创建可执行文件要做的事很少:实现一个 main/1 函数,更新一下 Mixfile

我们要先创建一个模块作为可执行文件的入口,也就是我们实现 main/1 函数的地方:

defmodule ExampleApp.CLI do
  def main(args \\ []) do
    # Do stuff
  end
end

Read more...


测试是软件开发重要的一部分,这节课我们会讲一下如何使用 ExUnit 测试 Elixir 代码,以及测试中的最佳实践方法。

ExTest

Elixir 自带的测试框架是 ExUnit,它包括的功能足够我们充分测试自己的代码。在继续讲解之前,有一点要注意:测试是通过 Elixir 脚本来执行的,所以测试文件的后缀名必须是 .exs。在运行测试之前,我们要先用 ExUnit.start() 来启动 ExUnit,这一般在 test/test_helper.exs 已经帮我们做了。

上节课我们自动生成的示例项目中,mix 已经帮我们创建了一个简单的测试,你可以在 test/example_test.exs 文件中看到:

Read more...


在更深入了解 Elixir 之前,我们必须先学习 mix。如果你熟悉 Ruby 的话,mix 就是 Bundler,RubyGems 和
Rake 的结合。mix 对于开发 Elixir 至关重要,我们在这篇课程只会介绍它的部分特性。要了解 mix 的所有功能,可以执行 mix
help 查看。

直到现在,我们还一直用 iex 和 Elixir 打交道,这种方法明显是有局限的。在编写大型项目的时候,为了方便管理,我们会把代码分成不同的文件,mix 就是为了管理项目而生的。

新项目

要创建一个新的项目,只要运行 mix new 命令就行,非常简单。这个命令能帮我们自动生成项目的目录和一些标准的模板文件。很容易理解吧,那我们开始创建项目:

Read more...