|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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的一个原因。 |
|