对于使用Elixir + phoenix进行的编译时安全性检查,我有些不确定。
我对ruby和scala很熟悉,那么从编译时间检查/安全性的角度来看,像elixir + phoenix这样的东西在哪里?
似乎分配了Rails不会做的事情,但是对于某些事情(我不记得了),它似乎没有得到验证。
答案 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允许您包含的类型注释。