关于地点和附件的文档活动+ MVP,我必须创建的每个页面:
我创建了一个具有基本功能的应用程序(5页和导航栏),我已经有超过1500行代码和~40个文件。我认为这是完全不可维护的,但是我没有找到任何解决这个问题的方法。有几个框架(例如GWTP)实现了MVP,但它们也需要相同数量的样板。
我可以使用spring mvc或play在~200行中实现相同的功能。
我做错了什么,你会如何解决?
答案 0 :(得分:6)
我认为这完全是不可维护的
我不同意你的看法。与大型文件相比,大量小文件的维护要好得多。我同意GWT比Spring MVC 更多更冗长:
在GWT的情况下,由于Java和状态视图的严格性,你必须做很多额外的工作。它是完全可维护的(如果正确完成)。主要优点是您可以为表示层添加单元测试。由于这个事实,对于具有复杂UI,大型代码库和大型团队的长期运行项目,它将更加可维持。如果您的项目不是这样(屏幕很简单,而您不打算为UI图层添加单元测试),那么最好是:
视图和演示者之间接口的另外两个优点:
所有这些文件的真正含义是设置一个活动需要很长时间。为了简化它:
另一个样板来源是数据绑定。考虑使用编辑器框架。
答案 1 :(得分:4)
将MVP与GWT结合使用的主要好处是能够使用普通的JUnit TestCase
单独测试您的演示者,而不是依赖于非常缓慢的GwtTestCase
。
其他好处,例如可维护性,可以使用像@Maksym Demidas指出的更简单的项目结构来实现。
所以真正的问题是,如果你想要/需要在你的项目中进行这种程度的测试,代价是前面提到的样板。请注意,地点和活动与MVP无关:您可以使用它们来实现MVP,但它们只是关于地点之间的导航和视图转换(URL
s)。
我真的建议你看看最近的Erik Kuefler的Google IO 2013演示文稿 - Demystifying MVP and EventBus in GWT
。它应该可以帮助您确定何时使用MVP以及何时不使用MVP。另外,看看他发布的开源库,特别是GwtMockito
(即,在简单的JUnit TestCase
中测试小部件的逻辑)。