仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1595|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA编程:采访与书摘《Pro Web 2.0 Application Development with GWT》仓酷云

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:32:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net网页编程性能上肯定会站上风的。InfoQ十分侥幸地向人人推出《ProWeb2.0ApplicationDevelopmentwithGWT》一书的摘选,并因而有幸采访了本书作者——JeffDwyer。
1.GWT在Java社区的位置愈来愈主要,市情上已出书了良多关于GWT的书。相对别的书来讲,您的书的特性是甚么?您以为这本书最杰出的部分是甚么?
我以为年夜部分编程类书本的前半部分都在讲一些十分基础的工具,只需复杂的懂得一下API大概文档就可以晓得的工具,然后在书的后半部排列举几个例子展现一下怎样完成某个特定的初级功效。这些书读起来很简单,可是真要坐上去入手下手开辟程序的时分,你才会发明本人乃至还不晓得该怎样办理最基本的一些手艺集成成绩。我偏向于经由过程例子来进修,因此老是但愿可以失掉一些站点的源代码。进修GWT的过程当中,假如把熟悉GWT所需的工夫设为X,那末将它与Maven、SpringSecurity&MVC、Hibernate&SiteMesh集成必要的工夫为3X,而找到准确的构架形式则必要花上5X的工夫。地道的GWT很简单,但集成却十分庞大。这就是本书侧重掩盖的内容。本书剖析了1万5千行代码的ToCollege.net源代码,我但愿经由过程这类剖析例子的体例可以匡助读者更快地了解怎样往办理各类庞大的集成成绩。GWT方面,我以为难点之一是怎样把完全的使用分别为可复用的组件。书中剖析了具有1万5千代码的ToCollege.net项目标源代码。我但愿这本书可以匡助人人尽快把握这项手艺。至于GWT,我以为最辣手的困难之一是怎样将您的使用分别为可重用的组件。关于这个成绩,有林林总总的体例能够办理,也有良多相互逆来顺受的倡议。我以为在本人下手完成之前,十分值得经由过程全部站点的高低文来懂得他人是怎样使用个中一种体例来办理这个成绩的。
2.GWT是用Java开辟Web2.0使用的一种体例。在浩瀚选择中,您为何对它偏幸有加呢?
我第一个创业项目(MyHippocampus)是实验开辟一种通用存储工具,有点像《梦断代码》中的Chandler,但我的项目中触及更多的假造观点。起首,高度假造的是一个Flash程序,这部分我总以为不太中意,我很厌恶完成Flash程序和Java服务器毗连的那部分。之前我做过良多Swing方面的开辟,以是对我来讲GWT就十分天然,我特别喜好的是可以在客户和服务器端复用统一个对象。我不晓得GWT是否是也会撑持那些我保持了但却正如日方升的相似flash范例的UI。
3.GWT1.5是比来公布的,而您的书也恰是基于这个1.5版本之上。在您看来,这个新版本中到场的最有代价的特征是甚么?
我以为关于这个成绩,谜底是跟着工夫而变更的。最后,GWT1.5只是为了迁徙到Java1.5的利用下去。但如今我们所失掉的则是一个使人欣喜的公布。编译器优化水平使人震动。GWT创作发明了一个神话,让您的程序不必要修正任何代码都能在GWT编译器优化的匡助下运转得愈来愈快。您能够参考RayCromwell的一个关于GWTExtreme的杰出的演讲——http://timepedia.blogspot.com/2008/06/google-io-gwt-extreme-presentation.html,从中能够懂得到它所带来的影响。ImageBundles不是一个全新的观点,但一旦您实验利用这个特征,会完整为它所服气。30个图象永久缓存在单一HTTP中而不给您增加任何包袱?切实其实。1.5中,因为正文撑持的干系,这些缓存对象会被清算失落,但在孵化器中有一些优异的代码可以匡助您把ImageBundles的观点延长到别的范例的资本缓存上。
4.您书中有一章出格注释了如何针对搜刮引擎来优化GWT站点。将Ajax使用变得能够被搜刮这个需求良多时分城市被疏忽大概没法准确完成。关于利用GWT创立Web使用的开辟者来讲,您以为充实使用各类工具箱和Web2.0功效的过程当中,甚么是最必要注重的?
明显,SEO是一些使用必需具有的特征,而这项特征在富使用中又很难完成。我以为,ToCollege.net办理计划恰好是一种把RIA使用向搜刮引擎关闭度量的轻量、不容易进侵的体例。书中别的提到的一个次要观点是我经常使用的commandpattern的利用。这是一个轮回主题,我因而可以利用统一个布局来制止XSRF打击;完成与Hibernate的集成;向客户端增加缓存,还可以很天然地让您的站点经由过程GoogleGears在离线形态下一样一般事情。最初,本书还花了良多工夫来说平安,这也是我们十分注意的一个话题。
5.有人曾对GWT及其主动天生代码的功效举行反攻,说假如经由过程一种言语(Java)来编写另外一种言语(JavaScript)的程序的话,会得到方针言语(JavaScript)的一切长处。您对这类说法是怎样看的?
这个成绩问得很好。厚道说,在我刚入手下手研讨如何创立富Web2.0使用的时分,我对JavaScript不长短常懂得。一想到要编写大批针对扫瞄器的代码,要面临IE6的bug,我就毛不寒而栗。比来一段工夫以来,我在PatientsLikeMe事情顶用JavaScript编写了大批代码,不能不说的是JavaScript天下比我最后设想的要好良多。工夫加上开放的思想,您完整能够写出洁净拖拉的JavaScript代码,只必要花点工夫好好研讨一下最好用法。JavaScript这门言语很成心思,但假如您只是试图经由过程写JavaScript来天生Java,那您一定会对它切齿腐心。关于优异的开辟职员来讲,JavaScript能够起到十分好的感化,但仍旧范围在必定水平之内。

GWT出生的缘故原由是,Google发明JavaScript不合适年夜型项目。他们有大批最优异的开辟职员,遵守最好用法的准绳举行开辟,但项目很年夜的时分,他们发明内部工具的撑持入手下手比洁净的JavaScript代码更胜一筹。我以为在思索利用GWT的时分,切记这点长短常有效的。GWT不是为低级开辟职员创立的EZ-AJAX,也不是为那些不想学JavaScript的人而计划的,而是Google的天赋开辟职员在为开辟更年夜型的富收集使用而抓狂的时分所引发的点子。
6.良多利用GWT的开辟职员都极其欣赏的一点是他们因而不必要再亲身考证使用在各类扫瞄器下的运转情形。您以为这是GWT强无力的上风吗?
不见得。正如我之条件到的,在我入手下手使用GWT的时分,这是个十分有目共睹的卖点,可是说假话,我以为有点太高估量了这个成绩。从这个角度来讲,GWT切实其实很好用,但一些JavaScript办理计划也不见得很烂。您能够找到良多相干的例子大概开辟框架。固然,偶然候您必要思索把元素放在popup前面,如许form元素就不会搅浑个中,固然您应当思索一些关于毛病的成绩,但一般来讲,跨扫瞄器开辟中真实的困难是CSS,而不是JavaScript。Prototype/JQuery/etc是不错的类库。以是从这点来看,GWT十分不错,但我不但愿人人用GWT来跑一些十分基本、只必要几行Script.aculo.us的工具。假如您只是构架一个复杂的网站,那利用GWT便可能有点借题发挥了。
7.在GWT天生JavaScript文件以后,您还经常必要在各类扫瞄器下debug您的使用程序吗?假如要那样debug的话,您以为简单找到并修改bug吗?
从1.3起,我就没需要在扫瞄器下debug那些天生的JavaScript了,即便偶然候有bug,95%都是我的错。GWT天生的代码都很对。实践上,还不止这些。GWT还能省往大批内存成绩,乃至还能修补JavaScript开辟职员的忽略。GWT可以在您毫无之觉的情形下修补一些毛病。

CSS完整是别的一码事。关于CSS,我最初要做的都只是编译罢了。我的基础事情流是,先在hosted形式下完成功效项,然后就只是守候几秒钟的代码革新工夫。然后编译,再在Firefox下检察,选用Firefox是由于因而能够借用Firebug的力气来检察CSS是不是准确。再然后,把CSS迁回到项目中来,检察要让该CSS在IE下一般显现还必要做些甚么。可是,很长一段工夫以来,我都没有需要再把天生的JavaScript以pretty形式输入。
8.良多人以为,像GWT如许主动天生代码大概精密的JavaScript开辟框架的呈现意味着传统的“Web平台”已开展到了它的顶点,应当由一些更先辈的事物来替换了。您对这个概念怎样看?
这恰是成绩地点!我认同这个概念。这个概念很成心思,但也带着些挖苦。我以为本人对REST不休增加中的热忱实践上也使得我愈来愈感应web平台实践上在拖人人的后腿。REST用起来也很好,但我经常以为它应当在那些服务器只卖力REST服务,而客户端卖力与UI相干的统统事件的天下里会运转得更好。客户端越“富有”,两头就越难覆写所需功效项,把使用逻辑安排在服务器端就愈发显的奇异。InfoQ关于SOFEA和ThinServerArchitecture的文章在这点上实在影响了我的意见。我以为GWT鄙人面这个情形中使用会十分得当。例如说,您有一个能够在客户和服务器两头运转的代码库,然后您能够把MVC栈从服务器端转移到客户端,这关于使用的可伸缩性和用户体验都十分有匡助。但成绩的实质是,我们是不是必要引进新事物。我以为还没有这个需要。我们有大概正在靠近将使用逻辑安排在服务器真个末期,不单单将扫瞄器作为用户代办署理。扫瞄器的使用无处不在,而GWT匡助您办理良多相干成绩,除此以外,您还能从GoogleGears中受害。最初,假如您还想要完成更多,那末JavaWebStart是不错的选择。
9.作为GWT工具箱的用户,您希冀它未来的公布中引进一些如何的新特征?
你想晓得我的“白天梦”吗?我很但愿GWT可以在静态言语中利用。固然我也晓得,这也大概意味着得到极好的refactoring撑持和GWT为对照年夜的团队供应的别的一些长处。但开辟GUI的人们激烈期盼对静态言语的撑持。假如可以在GWT项目标一些较为静态的元素上夹杂利用Groovy,那多成心思阿!
浏览英文原文:InterviewandBookExcerpt:ProWeb2.0ApplicationDevelopmentwithGWT。
本文出自:http://www.infoq.com/cn/articles/progwt;jsessionid=0F2D03E0D6C7FDF00E7F87A1842891A2

令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
柔情似水 该用户已被删除
沙发
发表于 2015-1-21 09:59:33 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
小妖女 该用户已被删除
板凳
发表于 2015-1-25 09:07:27 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
若天明 该用户已被删除
地板
发表于 2015-2-2 17:54:49 来自手机 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-8 03:22:46 | 只看该作者
是一种突破用户端机器环境和CPU
乐观 该用户已被删除
6#
发表于 2015-2-18 09:46:22 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
小魔女 该用户已被删除
7#
发表于 2015-2-26 19:03:41 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-7 08:33:29 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
活着的死人 该用户已被删除
9#
发表于 2015-3-11 05:40:39 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
蒙在股里 该用户已被删除
10#
发表于 2015-3-17 19:09:38 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘灵儿 该用户已被删除
11#
发表于 2015-3-24 20:50:00 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
第二个灵魂 该用户已被删除
12#
发表于 2015-3-27 15:11:57 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
金色的骷髅 该用户已被删除
13#
发表于 2015-3-31 21:17:25 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
透明 该用户已被删除
14#
发表于 2015-4-1 09:53:01 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
不帅 该用户已被删除
15#
发表于 2015-4-1 11:10:16 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
深爱那片海 该用户已被删除
16#
发表于 2015-4-1 22:11:10 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
变相怪杰 该用户已被删除
17#
 楼主| 发表于 2015-4-8 03:11:54 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
因胸联盟 该用户已被删除
18#
发表于 2015-4-12 13:56:57 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
老尸 该用户已被删除
19#
发表于 2015-4-21 03:51:22 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
莫相离 该用户已被删除
20#
发表于 2015-4-29 19:26:54 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-27 15:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表