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