elixir - 空 "parent"模块中是否有嵌套模块的约定?

标签 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

我猜不是,因为从我阅读的所有代码来看,模块名称的最后部分使用复数似乎是错误的做法。但我想确定一下。

最佳答案

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

因此添加一个空的中间模块显得相当不必要

正如@brett-beatty 评论的那样,关于尾随模块名称使用复数,似乎没有任何常见的做法反对这种做法。如果我们按照最流行的Elixir style guide规则,唯一的约定是 use CamelCase以及matching the project directories path .

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

关于elixir - 空 "parent"模块中是否有嵌套模块的约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383887/

相关文章:

performance - 如何微调牛仔的运行时行为?

elixir - `Ecto.Schema.Metadata` 的目的是什么? (即 `__meta__` 字段)

asynchronous - Task.async_stream药剂返回奇怪的输出

elixir - 如果当前请求是 AJAX 请求还是 POST 请求

Elixir 混合格式忽略行长选项

phoenix-framework - Elixir 邮件枪错误 : no function clause matching in IO. chardata_to_string/1

regex - 在 Elixir 中,如何用非单词字符作为分隔符来分割字符串,同时还允许使用 +、- 等数学运算符?

elixir - 在没有 Ecto 的情况下使用 Phoenix 框架

elixir - 为什么运行 local.phx 会降级 phoenix 存档?

Elixir 原子及其不同形式