在长生不老药中命名嵌套伞应用程序
Naming nesting umbrella apps in elixir
Umbrella 应用程序的行为与 mix 设置的普通应用程序非常相似。它们有配置,可以作为一个整体启动。因此,随着应用程序的发展,它们可以扩展为伞式应用程序。我现在遇到了这样一种情况,我想将伞式应用程序定义为更大的伞式应用程序中的应用程序之一。
有什么理由不这样做吗?
还有 way/convention 命名空间应用程序吗?
例如
def project do
[app: :"analytics.web",
version: "0.0.1",
deps_path: "../../deps",
lockfile: "../../mix.lock",
elixir: "~> 1.0",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps]
end
运行时的 Erlang 和 Elixir 应用程序具有平面命名空间。他们可以相互依赖,创建一个树状的依赖图。
Rebar 和 Mix 中的 Umbrella 项目(不是应用程序,因为没有单个 "app")主要是为了避免为多个相关 and/or 相互依赖的应用程序提供单独的存储库。
即使 Rebar 和 Mix 支持嵌套伞形项目,我想说这只是混淆了正常应用程序的结构。你假装有一个嵌套的命名空间,其中有 none.
在应用程序名称中使用点也不是最好的主意,因为在 Erlang ('analytics.web'
) 和 Elixir (:"a.b"
) 中输入它们都是有问题的。
我只会使用一个包含多个相互依赖的应用程序的伞式项目:
.
├── README.md
├── apps
│ ├── analytics
│ ├── analytics_stats
│ ├── analytics_web
│ ├── other_a
│ ├── other_b
│ └── ...
├── config
│ └── config.exs
└── mix.exs
```
Umbrella 应用程序的行为与 mix 设置的普通应用程序非常相似。它们有配置,可以作为一个整体启动。因此,随着应用程序的发展,它们可以扩展为伞式应用程序。我现在遇到了这样一种情况,我想将伞式应用程序定义为更大的伞式应用程序中的应用程序之一。
有什么理由不这样做吗?
还有 way/convention 命名空间应用程序吗? 例如
def project do
[app: :"analytics.web",
version: "0.0.1",
deps_path: "../../deps",
lockfile: "../../mix.lock",
elixir: "~> 1.0",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps]
end
运行时的 Erlang 和 Elixir 应用程序具有平面命名空间。他们可以相互依赖,创建一个树状的依赖图。
Rebar 和 Mix 中的 Umbrella 项目(不是应用程序,因为没有单个 "app")主要是为了避免为多个相关 and/or 相互依赖的应用程序提供单独的存储库。
即使 Rebar 和 Mix 支持嵌套伞形项目,我想说这只是混淆了正常应用程序的结构。你假装有一个嵌套的命名空间,其中有 none.
在应用程序名称中使用点也不是最好的主意,因为在 Erlang ('analytics.web'
) 和 Elixir (:"a.b"
) 中输入它们都是有问题的。
我只会使用一个包含多个相互依赖的应用程序的伞式项目:
.
├── README.md
├── apps
│ ├── analytics
│ ├── analytics_stats
│ ├── analytics_web
│ ├── other_a
│ ├── other_b
│ └── ...
├── config
│ └── config.exs
└── mix.exs
```