使用伞状结构的一个优点是应用程序被构建为独立的应用程序。这有助于在应用程序之间提供更清晰的界限并分离应用程序关注点。例如,伞中的一个应用程序应该只调用另一个伞形应用程序的公共 api。但是,这不是强制执行的,仍然可以调用私有 api。
保护伞中的各个应用程序都有自己的配置文件、测试和单独的mix.exs文件,这些文件可以作为一个大应用程序进行编译、运行和测试,因为它们都在保护伞中。但是,在应用程序目录 (in apps/app_name) 中工作时,单个应用程序仍然可以独立运行和测试。
在我看来,这也可能有缺点。伞的一个缺点是您需要管理1 + app_count不同的配置和混合文件。此外,您的源文件将嵌套得更深,例如 inapps/app_name/lib/app_name/...而不仅仅是lib/app_name,这使得导航源代码变得更加困难。
在许多情况下,我发现我正在从事的项目不需要伞形应用程序,因为伞形应用程序无论如何都不会独立运行。通常,我更喜欢在lib/文件夹中拥有具有不同命名空间的项目,同时仍将它们视为具有不同职责的应用程序。
elixir-lang.org 上的“依赖项和伞式项目”文档
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |