Когда я запускаю phx.server, какие гарантии на время компиляции я получу? - PullRequest
0 голосов
/ 07 декабря 2018

Я немного не уверен относительно того, какие проверки безопасности времени компиляции я получу с помощью эликсира + феникса.

Я знаком с рубином и скалой, так где же будет что-то вроде эликсира + феникса с точки зрения компиляции?время проверок / безопасность?

Кажется, что он забирает много вещей, которые Rails не смог бы, но для некоторых вещей (я не могу вспомнить) это, казалось, не подтвердило.

1 Ответ

0 голосов
/ 11 декабря 2018

В 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 позволяет вам включать.

...