空的“父”模块中是否有嵌套模块的约定?

时间:2019-01-26 23:49:21

标签: elixir

假设我在一个应用程序中创建了多个助手模块:

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 :(得分:2)

正如@ 7stud所评论的那样,在命名空间中使用点仅仅是一个普遍接受的约定,甚至在Elixir core code中也使用了约定。这样做只是为了轻松防止名称冲突(通过与名称匹配的路径来加强)。

因此添加一个空的中间模块似乎是不必要的

正如@ brett-beatty所评论的那样,关于在模块名后面使用复数,似乎没有任何通用的惯例可以对此做出裁决。如果我们遵循最受欢迎的Elixir style guide规则,那么唯一的约定就是use CamelCasematching the project directories path

注意:我收集了评论以结束这个问题。