玩模块化开发:子项目鸡和鸡蛋

时间:2013-02-01 16:46:15

标签: configuration module routing playframework playframework-2.0

在Play 2.x子项目中,构建模块化应用程序的方式看起来很棒。

现在,深入了解细节,一些问题变得清晰:

1) Cyclical dependencies not possible (A can depend on B, but B cannot depend on A)  
2) A child project cannot access a parent project  
3) Routing and Assets are isolated to each sub project

在我的情况下,我想按如下方式构建一个应用程序:

Main
Modules
-> Core
-> Model
-> Common
-> View
  -> Desktop
  -> Mobile
-> Controller
  -> admin
  -> account
  -> public

现在,假设管理员控制器收到移动请求,但用户尚未登录。好的,我们需要提取View > Mobile > views > login > index.scala.html

由于控制器子项目依赖于视图(反之亦然),视图将无法访问控制器路径,这意味着像@form(action = admin.routes.auth)这样的东西将无效。

可以在每个单独的控制器子项目下废弃查看子项目和存储视图,但这看起来像是大量模板代码重复的配方。

对于基本的核心,模型,主要(资产,控制器,视图)子项目设置,一切都很好,但是当你需要支持移动和桌面界面,以及crud和前向视图时,它会变得复杂得多。

当您看到单个路线文件导致庞大的构建时间时,子项目开始看起来像圣杯。

实施是另一回事。

0 个答案:

没有答案