过去我做过一个GWT项目(GWT版本1.4),但是非常痛苦。
界面是用代码构建的(非常不好),需要大量缓慢的编译和等待时间,单元测试也很糟糕。更不用说与Hibernate集成最麻烦了。
但是在我看来,GWT在Java开发人员中非常热门,我正在重新考虑它。
你试过GWT 2.x吗?现在它是否更好了?我特别关注前三个问题(缓慢的编译、UI构建和单元测试)。
让我们逐一解决您的三个主要问题。
现在情况已经好多了,有以下几点改进:
是的,使用UiBinder。
编写包含元素的HTML“模板”,这些元素充当小部件的占位符。表示面板(可以包含小部件的小部件)的元素可以包含表示其他小部件的元素。
是的,仍然需要在Java中组合小部件的某些方面,但现在大大减少了这种情况。
以前有何不好?您的逻辑代码仍然可以通过JUnit运行。最近,在GWT中更加重视MVP设计,因此您的代码中可以使用普通的JUnit进行测试。
GWT还有一种单元测试方式,可以运行非交互式浏览器。我个人的经验是,在客户端(Presenter)和服务器代码中使用大量的JUnit测试时,通常可以安全地避免使用这种测试方法。