运行phx.server时,我可以获得什么编译时间保证?

时间:2018-12-07 03:43:08

标签: elixir phoenix-framework

对于使用Elixir + phoenix进行的编译时安全性检查,我有些不确定。

我对ruby和scala很熟悉,那么从编译时间检查/安全性的角度来看,像elixir + phoenix这样的东西在哪里?

似乎分配了Rails不会做的事情,但是对于某些事情(我不记得了),它似乎没有得到验证。

1 个答案:

答案 0 :(得分:1)

Elixir / Erlang中的编译时保证并不多,在这方面与Ruby相当。编译器将检查您调用的函数是否确实与调用它们的工具一起存在,但即使这种情况并非总是如此。例如,如果您仅将以下内容放在.ex文件中:

defmodule A do
  def a(), do: B.b()
end

并使用elixirc my_file.ex进行编译,不会产生错误,但这是

defmodule A do
  def a(), do: b()
end

会产生一个。

如果您想进行更多的编译时检查,则可能需要查看dialyxir来检查Elixir允许您包含的类型注释。