GWT模块设计

GWT模块设计,gwt,Gwt,我有一个包含两个组件的应用程序。 一个顾客面对一个顾客提交餐馆订单。 一个面对面的小贩,用来查看餐馆的订单 我是否应该有两个具有不同入口点的模块,因为除了组件之间的域模型对象之外,没有共享代码?我的设计选择使用: 1单模块 2同一登录页用户pojo必须具有类型,即供应商或客户 基于类型的3In OnmoduleLoad将打开相应的供应商或客户演示者 为什么 1代码可重用性 2减少2个模块的维护 嗯,我也在等待更多的设计选项 我能想到的一个原因是,您可能希望这样做,那就是减少下载大小,因为客户可能

我有一个包含两个组件的应用程序。 一个顾客面对一个顾客提交餐馆订单。 一个面对面的小贩,用来查看餐馆的订单

我是否应该有两个具有不同入口点的模块,因为除了组件之间的域模型对象之外,没有共享代码?

我的设计选择使用:

1单模块

2同一登录页用户pojo必须具有类型,即供应商或客户

基于类型的3In OnmoduleLoad将打开相应的供应商或客户演示者

为什么

1代码可重用性

2减少2个模块的维护

嗯,我也在等待更多的设计选项


我能想到的一个原因是,您可能希望这样做,那就是减少下载大小,因为客户可能不使用某些屏幕/逻辑,您希望客户页面尽快加载。但是,您也可以通过代码拆分来实现这一点:


我认为有两个模块也可以。没什么大不了的

如果您不打算将它们部署在两个单独的节点上,我将使用一个模块。因为您只需要维护一个I18n文件,更少的静态文件html,所以只有一个模块描述符没有重复


如果你决定只使用一个模块,代码分裂是一个很好的事情,考虑减少JS用户必须下载的大小。

< P>不能有100%个正确答案,这取决于你的项目。

如果必须在两个模块之间共享的公共逻辑的大小与特定于客户/供应商的逻辑相比非常小,并且大多数时候您只为客户/供应商编写代码,那么将其分离为两个编译的模块可能是一个好主意。在这种情况下,您将在开发模式下获得更快的刷新时间,并在所有模块合并到一起时更快地编译各个模块。 但是,在某些时候,可能需要创建合并的客户/供应商模式,因为有些用户同时是客户和供应商

我个人更喜欢这种方法,当应用程序的不同逻辑部分获得它们自己的gwt模块时,然后有一个根模块将所有这些模块链接在一起,再加上您有两个DevOnly模块,它们只允许您启动应用程序的某个特定部分。模块结构示例:

客户模块-不单独编译,取决于公共模块 供应商模块-不单独编译,取决于通用模块 通用模块-不单独编译 应用程序模块-单独编译,取决于客户和供应商模块 供应商独立模块-单独编译,取决于供应商模块,仅用于 发展 CustomerStandlone模块-单独编译,取决于Customer模块,仅用于开发
如果可能的话,这样的结构可以让您拥有快速开发模式,同时您还可以为供应商和客户功能必须同时提供的情况做好准备。

我认为单一条目就可以了。如果我在你的地方,可能会这样解决-为供应商提供安全“密码”以检查订单,所有客户都可以在没有看到其他订单的情况下下单。订单pojo在供应商和客户之间不常见吗?实际上你是对的……有一些通用的模型代码。为什么不能在两个模块之间重复使用代码?代码重用对我来说似乎不是问题。@DD.这一点与供应商和供应商的单独登录页面有关,如果您打算这样设计的话。