何时使用GWT,何时不使用

12

我在想,是否存在GWT不适用的特定情况?例如,使用GWT重新开发Stack Overflow合适吗?

我正在开发一个具有Java Restlet API的应用程序,计划使用GWT(以前我只是使用普通的HTML/CSS和后端PHP代码调用API)。我想知道为什么不应该选择这样做的原因?


2
GWT旨在简化创建Web“应用程序”的过程。我认为重新开发像Stackoverflow这样的“网站”并不是一个好主意。当我们谈论Web应用程序时,会想到Google文档和GMail(您不会离开页面,它使用Ajax进行动态刷新,交互式LnF就像真正的应用程序等)。当然,你的情况可能有所不同 :-) - Sanjay T. Sharma
4个回答

13

我的回答不是很全面,但我认为以下几点可能会有帮助。

  • 如果应用程序主要呈现文本信息和一些图片(即不太交互),则不应使用GWT。对于这些应用程序,GWT并没有给您带来很多好处。
  • 如果团队具备较强的Web技能和相对较弱的Java技能,则不应使用GWT。
  • 如果您需要支持GWT官方不支持的浏览器,例如MSIE 6,请勿使用GWT。

3
GWT支持MSIE 6:http://code.google.com/webtoolkit/doc/latest/FAQ_GettingStarted.html#What_browsers_does_GWT_support? 它甚至为其编译了一个特殊的排列,其中包含许多解决方法。你是想问IE 5.5吗? - Chris Lercher

4

请看这个主题:GWT 适合大型项目吗?

GWT 是用于在单个页面中操作复杂操作的最佳选择,例如 Google Wave、Google Mail 等等。您可以轻松更新(ajax)页面的任何部分。

由于 GWT 是 java-to-javascript 编译器,用户需要等待 .js 文件加载,如果您的 web 应用程序很大,则会导致许多问题。您的项目越大,javascript 文件越大,用户等待 .js 文件的时间也就越长。


3

个人认为,如果您有一个看起来像博客、新闻门户等静态网站,每个页面都有自己的身份表示一个实体,并单独请求,请不要仅使用GWT(您仍然可以将其与服务器端生成的页面混合使用,如FB)。

对于大多数其他Web应用程序,特别是如果用户登录以使用您的应用程序或您的应用程序是交互式的且没有技术问题,请使用GWT(例如Gmail设计)。


1
我建议不惜一切代价避免使用GWT。我有使用GWT开发大型项目的经验,这是一场噩梦,因为开发周期很长。如果您在angularjs/react/jquery中使用应用程序,则可以更新源代码,单击F5并重新加载它。您可以通过单击F12快速调试。

如果您在大型项目中使用GWT,则必须等待约1分钟才能编译应用程序。然后没有好的方法来调试它。Google提供了特殊的浏览器插件,但它们不稳定,并且不支持浏览器的最新版本,因此我不得不降级FF。此外,巨大的GWT应用程序调试需要大量的Java内存,因此您必须为Tomcat提供更多内存。最后,在实践中,您无法避免学习JS,如果您进行现代Web开发,则必须学习它。

更新于2017年5月15日:我的回答受到GWT粉丝的反对,但我想指出,我的信息是最新的:使用最新的IDEA和10Gb mem SSD笔记本电脑重建1页hello world应用程序需要约30秒。我还问过在生产中使用GWT进行严肃项目的朋友:他们声称平均重新部署时间为2分钟。


你听说过超级开发者模式吗? - Spiff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接