我有一个包含两个组件的应用。 面向提交餐厅订单的客户。 面向观看餐馆订单的供应商。
我是否应该有两个具有不同入口点的模块,因为组件之间没有共享代码(域模型对象除外)?
答案 0 :(得分:0)
有一个原因我可以想到为什么你可能想要这样做 - 这是为了减少下载量,因为客户可能不会使用某些屏幕/逻辑(并且你希望客户页面加载速度快尽可能)。但是,您也可以通过代码拆分实现此目的:https://developers.google.com/web-toolkit/doc/latest/DevGuideCodeSplitting
我认为有两个模块也很好。没什么大不了的。
答案 1 :(得分:0)
如果您不打算在两个单独的节点上部署它们,我会使用一个模块。因为你只需要维护一个I18n文件,减少静态文件(html),所以只有一个模块描述符(没有重复)。
如果您决定只使用一个模块,那么代码拆分是一件好事,可以考虑减少JS用户必须下载的大小。
答案 2 :(得分:0)
没有100%正确答案,这实际上取决于你的项目。
分离成两个编译模块可能是个好主意,如果您的公共逻辑的大小(必须在两个模块之间共享)与客户/供应商特定逻辑相比非常小,而且大多数情况下您正在编写代码仅限客户/供应商。在这种情况下,您将在开发模式下获得更快的刷新时间,并将各个模块更快地编译到所有内容合并在一起的情况。 但是,在某些时候,可能需要创建合并的客户/供应商模式,因为有些用户同时是客户和供应商。
我个人更喜欢方法,当应用程序的不同逻辑部分获得自己的gwt模块时,然后有一个根模块将所有这些模块链接在一起,另外还有几个DevOnly模块,它们允许您只启动一些特定的模块申请的一部分。示例模块结构:
这种结构允许您拥有快速开发模式(如果可能的话),同时您准备好供应商&客户功能必须一起提供。
答案 3 :(得分:-1)
我选择的设计(使用MVP ):
1)单个模块
2)相同的登录页面(用户pojo必须具有类型vendor
或customer
)。
3)在OnmoduleLoad
基于类型I'l打开对应vendor or customer presenter
为什么?
1)代码可重用性。
2)减少2个模块的维护。
好吧,我也在等待更多设计方案。