Существует ли соглашение для вложенных модулей в пустом «родительском» модуле? - PullRequest
0 голосов
/ 27 января 2019

Допустим, я создаю несколько модулей помощников в приложении:

defmodule MyApp.Helpers.Uri do
  @moduledoc """
  A collection of string helpers.
  """
end

defmodule MyApp.Helpers.Crypto do
  @moduledoc """
  A collection of crypto helpers.
  """
end

Является ли хорошей практикой создание пустого "родительского" модуля?

defmodule MyApp.Helpers do
  @moduledoc """
  Gather all my app helpers.
  """
end

Думаю, нет, поскольку использование множественного числа для последней части имени модуля кажется неправильной практикой из всего кода, который я прочитал. Но я хочу быть уверен.

1 Ответ

0 голосов
/ 28 января 2019

Как заметил @ 7stud, использование точек в пространстве имен является просто общепринятым соглашением, которое используется даже в коде ядра Elixir .Это делается только для того, чтобы легко предотвратить конфликты имен (что усиливается путем сопоставления имен путей).

Поэтому добавление пустого модуля в середине кажется довольно ненужным .

Как прокомментировал @ brett-beatty, относительно использования множественного числа для конечных имен модулей , похоже, что против этого не принято какой-либо общепринятой практики.Если мы будем следовать самым популярным правилам Elixir , единственными соглашениями будет использование CamelCase , а также , соответствующий пути каталогов проекта .

Примечание: я собрал комментарии, чтобы закрыть этот вопрос.

...