GWT 优点和缺点「建议收藏」

GWT 优点和缺点「建议收藏」GWT 优点和缺点

大家好,又见面了,我是你们的朋友全栈君。

原文地址:http://blog.csdn.net/superhc/article/details/7223716点击打开链接

优点:

  1. 如果你以前使用JAVA开发Swing or AWT应用, 那么选择GWT是最自然的. 对这样的开发人员来说,学习曲线是最平缓的。(评论中被质疑。认为不懂得JAVASCRIPT就无法真正DEBUG使用GWT中遇到的问题)
  2. 即使你不是JAVA GUI开发的老手,多年JAVA服务器端编程的经验也会帮助你较快上手。
  3. 你创造的快速响应的web应用可以基于很少的的客户端开发和更直接的服务器开发。
  4. 虽然网络上有很多实用的JAVASCRIPT类库, 很多传统程序员并不真正理解它们的价值。铭记,像JAVASCRIPT这样强大的语言总是一把双刃剑。 如果你不知道如何正确使用它, 你会弄的更糟。(被质疑,对质疑者而言,高质量的开源的类库很难找)
  5. 你可以迭代的把传统WEB应用移植到GWT。这不是一个要么全转要么全不能转的选择。你可以使用JSNI作为去调用那些已经被移植的JAVASCRIPT函数。 但是总是越早越好。
  6. GWT的IDE支持是最好的. Java IDEs 在过去的十年中不断成长成为世界上最好的之一, 而GWT正好利用了这点。
  7. 集成的跟踪查错是开发人员梦寐以求的功能. 集成在JAVA IDE中的优秀的跟踪查错功能可以让任何人钟情于GWT。
  8. 集成在IDE中的重构JAVA代码功能可以保持代码总是保持简单,而这点JAVASCRIPT很难做到。
  9. 集成在IDE中的语法高亮,错误检查,代码完成快捷等等是无法抗拒的。
  10. GWT一直被GOOGLE积极的维护着。我们知道这个项目不会很快停滞。到现在,他们仍旧对这个项目的提出了很多承诺。(评论中,有人质疑DART项目和GWT的冲突,怀疑GOOGLE会不会逐步转移到DART)
  11. 活跃的社区支持是一个对GWT巨大的加分因素。在很多论坛,WIKI和BLOG都有讨论。一个简单查询可以帮助你找到正确的方向。(被质疑,因为和其他框架JQUERY相比,GWT的第三方组件相对少)
  12. GWT是一个设计精良的API; 不是一个为了快速发布的半成品。这帮助开发人员较容易理解GWT的抽象和更简单去应用。
  13. 你可以使用GWT自己的协议在客户端和服务器端交换数据,这样就不用关心数据打包和传输的细节。如果你需要更多的控制,你可以使用XML, JSON或者其他任意的格式。在这种情况下使用JSON,你仍旧可以抛弃难用的JAVA的JSON类库。你可以直接使用JSNI去执行直接的JAVASCRIPT。
  14. 你可以利用标准的JAVA静态代码分析工具,比如FindBugs, CheckStyle, Detangler, PMD等等, 去监控和管理代码及设计质量。这点在一个比较大的有各自分工的团队中尤其重要。
  15. 你可以使用JUnit或者Test NG进行单元测试,可以使用JMock或者其他类似类库去替代依赖。TDD的执行是很直接明了的,如果你已经开始实践了。尽管有很多JAVASCRIPT的单元测试框架,比如JSUNIT和QUNIT,请告诉我有多少人真正了解它们,或者忍不住要求使用它们。
  16. GWT编译器产生跨浏览器的JAVASCRIPT代码。如今,这已经成为WEB应用的必需品。
  17. GWT编译器优化产生的代码,删除无用代码,甚至可以混淆JAVASCRIPT代码。
  18. 尽管编译过程很长,你不需要在开发阶段经历它。GWT有一种特殊的模式可以使用浏览器插件去产生输出。
  19. 丰富的第三方组件,比如Smart GWT, Ext GWT等等。 它们有着很好的设计,并且支持主题定制。因此,如果GWT标准组件无法满足你的需求时候,这些第三方组件很有可能帮到你。就算还是没有,你还可以开发自己的定制组件。
  20. GWT 强调有状态的客户端和无状态的服务器端。这可以在多用户并发的情况下很大的减轻服务器的压力。
  21. I18N和L10N在GWT里面很容易使用. 事实上,GWT采用的是基于区域的编译器 ,而其他客户端的框架很难轻易做到I18N和L10N。
  22. GWT使用AJAX并集成浏览器BACK.的支持。如果你是一个AJAX程序员,你可以减少很多的工作量。

缺点:

  1. GWT发展很快,导致了同时存在了很多版本。很多函数,接口和事件在不断推出的新版本中失效,这样会让基于GWT开发的项目不得不花费时间和精力跟上GWT的步伐。(被质疑,其他框架有同样的问题)
  2. 开始的时候有很多GWT书籍,而现在则很少了。举个例子,我没有看到很多关于GWT 2.0的书。这让我们不得不使用GOOGLE提供的文档。这些文档是高质量的和全面的,但仍旧比不上一本好书可以带来的帮助。
  3. GWT不是很容易被使用的,毕竟JAVA是一门较难的语言,而GWT基于JAVA。再加上你需要使用JAVA去构造整个布局和页面组件,你可以让一个程序员很容易头疼。在GWT 2.0中推出的UI binder似乎解决了这个问题,但你仍旧学习一种新的语法。
  4. Java to JavaScript 编译太慢了, 这是个你决定使用GWT前需要仔细考虑的问题。
  5. 我个人习惯于使用HTML和CSS来设计网页。但在GWT中, 我不得不使用GWT专有的方式. 再加上GWT对于样式和布局的不兼容性更加让网页设计变得复杂。但是在UI Binder和HTMLLayout在2.0+版本中推出后,我觉得舒坦多了。
  6. 使用GWT需要很认真的态度,因为一个客户端技术的更新可能会需要重写你整个应用。
  7. 目前还没有使用GWT的最佳实践。通常情况下,人们会把所有GWT代码放在一个模块里面直到被认定为太大而不得不拆分成多个模块。如果拆分过晚,重构也变得很困难。
  8. 在GWT 1.X中,表现层代码和逻辑代码是搅合在一起的。引入UI Binder之后,这个问题应该解决了。但是学习一门新的XML语言也是让人不爽的。
  9. 处理简单事情时,GWT通常会产生3到5倍于其他框架(比如JQUERY)的代码。(被支持,针对简单的事情,应该使用JQUERY)
  10. 你应该记住GWT对HTML的抽象是不完整的。你仍旧需要了解最终产生的DOM结构,才能够正确应用样式。然而,从GWT的代码无法很直观的看到最终产生的DOM结构。
  11. GWT对JAVA开发人员来说是优势,对.NET和PHP来说则不是。
  12. 如果你已经体会了JAVASCRIPT的能力并且知道如何使用它,你会发现使用非表述性的语言比如JAVA是一件很麻烦的事情。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106222.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java中的重载与重写的区别

    Java中的重载与重写的区别java中的重载与重写的区别1、重载发生在本类,重写发生在父类与子类之间;2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;3、重载的参数列表不同,重写的参数列表必须相同。重载(Overloading)重载发生在本类,方法名相同,参数列表不同,与返回值无关,只和方法名,参数列表,参数的类型有关.重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。重载的特征(1):方法名必须相同(2):方法的参数列表一

  • linux 修改文件内容 vi命令

    linux 修改文件内容 vi命令vi编辑器是所有Unix及Linux系统下标准的编辑器,介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。在所有的命令执行前,先按Esc1、vi的基本概念   基本上vi可以分为三种状态,分别是命令模式(

  • 使用python语言编写常见的文本分类算法

    使用python语言编写常见的文本分类算法    自然语言处理中一个很常见的操作就是文本分类,比如一组新闻文本,通过分类模型,将新闻文本分为政治、体育、军事、娱乐、财经等等几大类。那么分类第一步就是文本向量化,前一篇博客讲了一些,本文可以说是前文的实践版本。本文主要介绍一些常见的文本分类模型,说是介绍,其实主要以代码和结果为主,并不会详细的介绍每个算法的思想、原理、推导过程等,那样的话,估计可以写一个7、8篇的系列了,另外我也发现很…

  • 使用python+django+twistd 开发自己的操作和维护系统的一个

    使用python+django+twistd 开发自己的操作和维护系统的一个

  • 大数据管理与应用专业总结笔记

    大数据管理与应用专业总结笔记大数据管理与应用专业:数据科学教育特点:不仅依赖于传统的信息管理于信息系统专业,更依赖于计算机、数学、统计等学科。大数据专业十一门涉及广泛的交叉性的学科。大数据时代的下的理念(维克托·迈尔·舍恩伯格):一是更相关性而不是因果性;二是更关注数据的纷繁复杂,而不是数据的精准;三是全部数据,而不是抽样数据。维克托·迈尔·舍恩伯格:维克托·迈尔-舍恩伯格是十余年潜心研究数据科学的技术权威,是最早洞见大数据时代发展趋势的数据科学家之一,也是最受人尊敬的权威发言人之一。**目前的形势:**目前国内新增院校还不多

  • MySQL数据库面试题(2020最新版)

    MySQL数据库面试题(2020最新版)文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号