MVP总值得吗?

时间:2012-04-30 05:31:09

标签: unit-testing gwt mvp

MVP是* *所有* GWT应用程序的最佳做法吗?

  • 小型内部网络应用程序怎么样?
  • 不将unit testing用于此类应用程序或任何应用程序是否错误?
  • 对于不进行单元测试的应用程序,我是否还有其他原因需要使用MVP?

4 个答案:

答案 0 :(得分:7)

  1. 一般而言,MVP被认为是开发GWT应用程序的最佳实践。可以在this Google I/O Presentation
  2. 中找到应用该模式的几个原因
  3. MVP付出了代价,它将为您的应用程序引入更多类和复杂性。但它也将最小化耦合,它将使您的应用程序更可测试;因此,作为一名设计师,你需要决定这种模式是否值得痛苦。
  4. 一些方法 - like Extreme Programming - 鼓励在软件开发过程中包含自动化测试。同样,包含测试将要求您的团队编写更多代码,但作为交换,您的代码将是健壮且值得信赖的。我强烈建议您包括单元测试,即使应用程序很小。
  5. 正如我之前所说,简易测试是MVP的一个好处,但它不是唯一的好处。根据这个article from Google
  6.   

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

答案 1 :(得分:2)

这是主观的,设计的东西总是权衡利弊。

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我可以在MVP范例中看到优点,但对于我自己,我更喜欢在模型和GWT特定视图类之间没有额外的表示层。 我确保严格保持所有业务规则不在视图类(UIBinder的东西)中,而是将它放在模型类中。

同样地,我将所有GWT.create(..)内容保留在模型之外。这让我可以毫不费力地访问服务器端的模型类。然后我在我的JUnit测试中使用SyncProxy进行RPC调用。

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