【问题标题】:GWT Module DesignGWT 模块设计
【发布时间】:2013-04-01 10:50:20
【问题描述】:

我有一个包含两个组件的应用程序。 一位客户面临提交餐厅订单的问题。 一个供应商面对一个查看餐厅订单的供应商。

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

【问题讨论】:

  • 我认为单项就可以了。如果我在您的位置,可能会像 - 为供应商提供安全“密码”以检查订单,并且所有客户都可以在看不到其他订单的情况下下订单。
  • Order pojo 在供应商和客户之间不常见吗??
  • 其实你是对的...有一些常见的型号代码。

标签: gwt


【解决方案1】:

我能想到您为什么要这样做的一个原因 - 这是为了减少下载大小,因为客户可能不使用某些屏幕/逻辑(并且您希望客户页面加载速度尽可能快尽可能)。但是,您也可以通过代码拆分来实现这一点:https://developers.google.com/web-toolkit/doc/latest/DevGuideCodeSplitting

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      不可能有 100% 正确答案,这真的取决于你的项目。

      分离成两个已编译模块可能是个好主意,以防与客户/供应商特定逻辑相比,必须在两个模块之间共享的公共逻辑的大小非常小,并且大部分时间您都在编写代码仅适用于客户/供应商。在这种情况下,您将在开发模式下获得更快的刷新时间,并在所有内容合并在一起的情况下更快地编译单个模块。 但是有一个问题,在某个时间点,可能需要创建合并的客户/供应商模式,因为有些用户同时是客户和供应商。

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

      • Customer 模块 - 不单独编译,依赖于 Common 模块
      • Vendor 模块 - 不单独编译,依赖于 Common 模块
      • Common 模块 - 不单独编译
      • App 模块 - 单独编译,取决于客户和供应商模块
      • VendorStandalone 模块 - 单独编译,依赖于 Vendor 模块,仅用于 发展
      • CustomerStandalone 模块 - 单独编译,依赖于 Customer 模块,仅用于开发

      这种结构允许您拥有快速开发模式(如果可能的话),同时您可以为必须同时提供供应商和客户功能的情况做好准备。

      【讨论】:

        【解决方案4】:

        我选择的设计(使用MVP):

        1)单模块

        2) 相同的登录页面(用户 pojo 必须具有类型,即 vendorcustomer)。

        3)在OnmoduleLoad基于类型我会打开对应vendor or customer presenter

        为什么??

        1) 代码可重用性。

        2)减少2个模块的维护。

        嗯,我也在等着看更多的设计选项。

        Please refer

        【讨论】:

        • 为什么不能在两个模块之间复用代码?代码重用对我来说似乎不是问题。
        • @DD。这一点与供应商和供应商的单独登录页面有关(如果您要这样设计)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多