我最近将GWT添加到我们的项目中,以实现我们的Web应用程序的Ajax功能。其他开发人员抱怨GWT编译添加到构建的额外时间,并且问我为什么不使用JSON和jQuery。我应该告诉他们什么?
答案 0 :(得分:4)
尝试使构建更加智能(如果尚未完成):只有在客户端源发生更改时才应重新编译GWT(客户端)部分。我认为,主要是你改变了这个来源,所以其他开发者不会经历这种痛苦。
警告:当然,如果您的客户端源代码与现有项目共享代码,这当然不起作用(我假设,它是服务器端的Java项目?)。但也许你应该避免在你的情况下使用共享代码:即使这违反了DRY(不要重复自己)原则,如果你没有使用GWT,也应该意识到你违反了它。
但是,如果你做重用服务器项目中的代码,那么你有一个很好的论据,为什么你使用GWT。
答案 1 :(得分:3)
如果开发人员必须编译整个GWT内容(所有排列)以开发应用程序,那真的很痛苦。从GWT 2开始,您可以将webapp项目配置为在“开发模式”下运行。由于内置的码头容器,它可以直接从eclipse(谷歌插件)开始。在这种情况下,只编译请求的资源,并且该过程是增量的。我发现这非常方便 - 我们的seam + richfaces + GWT应用程序中的GWT编译开销在开发周期中非常小。
在应用程序构建方面,有几个选项可以加速GWT编译。这是清单:
draftCompile
标记,跳过某些优化localWorkers
标志,您可以在构建多核CPU时加快速度。webapp的发布版本应该禁用draftCompile。此外,还应启用所有laguage变体。 Maven配置文件对于构建的参数化非常有用。
答案 2 :(得分:2)
您使用GWT而不是JSON / jQuery的原因是什么?
我会问同样的问题,因为根据你的需要,GWT可能不合法需要。
答案 3 :(得分:1)
根据我的经验,我完全理解你所得到的抱怨。 GWT是一项很棒的技术,它有很多好处。它也有缺点,其中之一是编译时间长。 GWT编译器进行了大量的静态代码分析,并不是具有数量级解决方案的东西。
作为开发人员,世界上最令人沮丧的事情是长期的开发 - 部署 - 测试周期。我知道你的开发者的感受。
如果GWT的技术优势值得,您需要做出架构决策。如果是这样,您的开发人员将需要习惯该技术,并且有许多解决方案可以使开发更容易。
答案 4 :(得分:0)
如果有充分的理由使用GWT而不是纯javascript,你应该告诉他们这个原因(技能,调试非常难以实现的问题,你不想处理浏览器兼容性等)。如果没有充分的理由,也许他们是不正确的。
我自己使用GWT,我知道这个编译时间: - )
如果你使用GWT来实现一个易于实现的javascript小部件或类似的东西,也许你应该考虑使用javascript代替。
答案 5 :(得分:0)
您用什么工具来编译项目?
很久以前我使用过 ant ,并且很聪明地发现,当GWT app(客户端代码)的源文件都没有改变时,GWT编译器任务没有被调用。
然而,在那之后我使用了 maven ,这真的很痛苦,因为它的插件无法识别代码没有改变而且GWT编译一直在运行,无论是否它是否需要。
我建议 ant 用于GWT项目。替代方案是重写maven插件或让开发人员习惯长时间编译。