Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将GWT添加到web应用程序。其他开发人员抱怨编译时间。我应该告诉他们什么?_Gwt - Fatal编程技术网

将GWT添加到web应用程序。其他开发人员抱怨编译时间。我应该告诉他们什么?

将GWT添加到web应用程序。其他开发人员抱怨编译时间。我应该告诉他们什么?,gwt,Gwt,我最近将GWT添加到我们的项目中,以实现web应用程序的Ajax功能。其他开发人员抱怨GWT编译在构建中增加了额外的时间,并询问我为什么不使用JSON和jQuery。我应该告诉他们什么?您使用GWT而不是JSON/jQuery的原因是什么 我会问同样的问题,因为你需要什么,GWT可能不是合法需要的。以我的经验,我完全理解你收到的投诉。GWT是一项非常好的技术,它有很多好处。它也有缺点,其中之一是编译时间长。GWT编译器进行大量的静态代码分析,它并没有一个数量级的解决方案 作为一名开发人员,世界上

我最近将GWT添加到我们的项目中,以实现web应用程序的Ajax功能。其他开发人员抱怨GWT编译在构建中增加了额外的时间,并询问我为什么不使用JSON和jQuery。我应该告诉他们什么?

您使用GWT而不是JSON/jQuery的原因是什么


我会问同样的问题,因为你需要什么,GWT可能不是合法需要的。

以我的经验,我完全理解你收到的投诉。GWT是一项非常好的技术,它有很多好处。它也有缺点,其中之一是编译时间长。GWT编译器进行大量的静态代码分析,它并没有一个数量级的解决方案

作为一名开发人员,世界上最令人沮丧的事情是漫长的开发部署测试周期。我知道你的开发者的感受


如果GWT的技术优势值得,您需要做出架构决策。如果是的话,您的开发人员将需要习惯这项技术,并且有许多解决方案可以使开发更加容易。

如果有充分的理由使用GWT而不是纯javascript,您应该告诉他们这个理由(技能,调试一个很难实现的问题,你不想处理浏览器兼容性等)。如果没有好的理由,也许他们会感到不安

我自己使用GWT,我知道这个编译时间:-)


如果使用GWT在JavaScript小部件或类似的东西中很容易实现,也许您应该考虑使用JavaScript。

试图使构建更智能化,如果它还没有的话:GWT(客户端)部分只应在客户端源更改时重新编译。我想,主要是您更改了源代码,所以其他开发人员不会感到痛苦

警告:如果您的客户机源代码与现有项目共享代码(我假设它是服务器端的Java项目),那么这当然行不通。但在您的情况下,也许您应该避免共享代码:即使这违反了DRY(不要重复您自己)原则,但要意识到,如果您不使用GWT,您无论如何都会违反它


然而,如果您确实重用了服务器项目中的代码,那么您就有了一个很好的理由,为什么要使用GWT。

如果开发人员为了开发应用程序而必须编译整个GWT内容(所有的排列),那真的很痛苦。从GWT2开始,您可以将webapp项目配置为在“开发模式”下运行。由于内置的jetty容器,它可以直接从eclipse(Google插件)启动。在这种情况下,只编译请求的资源,并且过程是增量的。我发现这非常方便——seam+richfaces+GWT应用程序中的GWT编译开销在开发周期中非常小

当涉及到应用程序构建时,有几个选项可以加速GWT编译。以下是检查清单:

  • 禁用soyc报告
  • 启用跳过某些优化的
    draftCompile
    标志
  • 通过调整
    localWorkers
    标志,您可以在构建多核CPU时稍微加快速度
  • 编译有限的排列集:例如,仅适用于开发期间使用的浏览器,并且仅适用于一种语言

但webapp的发布版本应该禁用draftCompile。此外,还应启用所有语言变体。Maven概要文件对于构建的参数化非常有用。

您正在使用什么工具来编译项目

很久以前,我使用了ant,它非常聪明地发现,当GWT应用程序(客户端代码)的源文件没有更改时,GWT编译器任务没有被调用

然而,在那之后,我使用了maven,这真的很痛苦,因为它的插件没有意识到代码没有改变,而且GWT编译一直在运行,不管是否需要


我建议GWT项目使用ant。另一种选择是重写maven插件或让开发人员习惯于长时间编译。

您只需要为集成测试和部署进行编译。有什么问题吗?其他开发人员需要查看购物车功能的更改。当然,大多数都会对每个构建运行清理阶段。是的,Java Spring Hibernate后端带有域对象和DTO。DTO正用于来自flex、jsp和现在的GWT的所有服务调用。@DataSurfer:在这种情况下,只要DTO发生更改,就需要重新生成GWT客户端代码。这可能是一个优势:您的GWT代码将无法编译,您将立即修复它,而JavaScript代码将继续“工作”,但可能在稍后的时间(通常是在生产中)中断。啊,是的。我现在明白你的意思了。类型安全。我认为类型安全性将是GWTs辩护中最有说服力的论点。谢谢。另外,如果其他开发人员使用特定的浏览器,您可以将编译限制到该浏览器(这里是firefox、safari和chrome):将其用于购物车中的项目配置和重新定价。将其用于购物车中的项目配置和重新定价。