5

MVP是否被认为是*所有* GWT 应用程序的最佳实践?

  • 小型内部 Web 应用程序呢?
  • 不对此类应用程序或任何应用程序 使用单元测试是错误的吗?
  • 对于不会进行单元测试的应用程序,我可能还有其他原因想要使用 MVP 吗?
4

4 回答 4

7
  1. 一般来说,MVP 被认为是开发 GWT 应用程序的最佳实践。在这个 Google I/O Presentation中可以找到应用该模式的几个原因。
  2. MVP 是有代价的,它将为您的应用程序引入更多的类和复杂性。但它也会最大限度地减少耦合,并使您的应用程序更具可测试性;因此,作为设计师,您可以决定该模式是否值得痛苦。
  3. 一些方法——比如极限编程——鼓励在软件开发过程中包含自动化测试。同样,包含测试将要求您的团队编写更多代码,但作为交换,您的代码将是健壮且值得信赖的。我强烈建议您包含单元测试,即使应用程序很小。
  4. 正如我之前所说,简单的测试是 MVP 的好处之一,但它不是唯一的好处。根据谷歌的这篇文章

MVP 以允许多个开发人员同时工作的方式解耦开发

于 2012-04-30T06:40:15.940 回答
2

嗯,这是主观的,设计的东西总是权衡取舍。

尽管小型应用程序的范围/大小/未来也值得商榷,但我们通常会为小型应用程序保持简单以降低复杂性或避免用佳能杀死苍蝇

但是,如果您的团队已经对 MVP 感到满意,我强烈建议您选择 MVP,因为随着规模的增加,模式将帮助您避免意大利面条式代码。

于 2012-04-30T05:58:29.093 回答
1

我可以看到 MVP 范例的优点,但就我自己而言,我不希望在模型和 GWT 特定视图类之间有额外的表示层。我确保严格地将所有业务规则排除在视图类(UIBinder 的东西)之外,并将其放在模型类中。

同样,我将所有GWT.create(..)东西都排除在模型之外。这让我可以毫不费力地访问服务器端的模型类。然后,我在我的 RPC 调用的JUnit测试中大量使用 SyncProxy 。

最终,当您编写富 Web 客户端时,您不能过多地依赖视图的自动化测试,尤其是当它由为各种平台(即浏览器)生成的代码呈现时。布丁的证据在于 Internet Explorer、Firefox 和 Chrome 的制作方法。

于 2012-04-30T08:31:46.757 回答
1

不使用 MVP 并不一定意味着不可测试。您始终可以使用自动化测试工具通过 UI 测试您的应用程序,但这些工具更难编写且更脆弱。如果您的应用程序很复杂,或者您需要维护它,那么从长远来看,使其可进行单元测试将是值得的。

于 2012-04-30T05:50:26.627 回答