繁体   English   中英

Google Web Toolkit对开发复杂的javascripts有用吗?

[英]Is Google Web Toolkit useful to develop complex javascripts?

我非常喜欢javascript框架,特别是jQuery。我一直想设计像“plurk.com”这样的网站,但我知道它需要非常庞大的javascript.so关闭我。但是因为我来了解GWT,我我真的想测试它,并想问你是否使我们的工作比使用javascript或其框架更容易开发复杂的东西。你更喜欢哪一个?

我认为这个问题的一些答案是非常不明智的,我怀疑回答他们的人从未在大型项目中使用过GWT。 是的GWT是一个很好的方式来做大型AJAX网站,对于大型复杂网站,也包括后端,它在公园上下踢JQuery之类的东西。 我一直看待它的方式是它自己的javascript非常适合做小客户端的事情。 当你需要做一些更复杂的事情(比如动态字段,弹出窗口,动画)时,你会带来像JQuery或Prototype这样的东西。 如果你想更进一步,你可以选择GWT。

人们认为,因为你用Java编写它,它是专为后端开发人员进行前端开发而设计的。 不是。 Java只是他们选择的语言,主要是因为它被广泛使用,静态类型,并且有很多优秀的编辑器。

我也不购买漏洞抽象理论,它不会试图完全抽象出HTML元素,因为它可以让你直接访问本机javascript和DOM,如果你选择使用它们。

简而言之,我们在GWT中构建了非常复杂的站点(其中一个在GWT博客上有特色),并且还使用了其他库,如JQuery。 我完全可以告诉你,一旦你了解了GWT,它就会杀死那些因复杂任务而死的其他框架。 它还有一些很棒的内置功能,有助于使事情变得更好,甚至可以做一些其他框架不支持的东西(比如它可以用图像做的魔术)。 有关详细信息,请参阅此博客文章:

http://googlewebtoolkit.blogspot.com/2007/10/epo-builder-built-with-gwt.html

很少有东西像“生成的Javascript”一样吓唬我。 在这些情况下,“漏洞抽象法则”必须更加真实。

编写有效的跨浏览器javascript是一个持续改进的棘手过程。 试图破译一些生成的,模糊的Javascript出错的地方是一个令人头疼的问题。 修复纯JS库中的错误已经够糟糕了。

对我来说,GWT是一个旨在允许后端开发人员编写前端浏览器代码的技巧。 不幸的是,现代网络应用程序的现实意味着你只需要知道Javascript和DOM。 有些东西会破裂,你需要知道原因。

我认为你最好选择一个像jquery或原型这样的好的javascript库,并且学得很好。 这些库抽象出那些应该被抽象掉的东西,并且不太可能在边缘情况下破解,比如数组操作和AJAX请求。

是的,确实如此,因为你将使用Java而不是Javascript。

卓越的IDE,静态代码分析,搜索和重构 - 所有这些都将使您在大型项目上的生活更加轻松。

不,它没有。

它不会消除复杂性,它只是使您可以从Java Perspective处理它。 因为它为您提供了Java提供的所有工具......仅此一点就可以使它变得有价值。

JavaScript IDE越来越好了,通常如果你使用像jQuery或Prototype这样的框架,那么你可能会发现它比处理像GWT这样的重量级抽象层更容易。

我个人的偏好是采用纯JavaScript方法,但那是因为我喜欢能够更接近金属工作,而且我有足够的纪律来驯服我的JavaScript猫。

使用GWT,你实际上并没有编写JavaScript; 它的全部价值主张是你可以编写Java,它将为你编译成JavaScript。

我正在研究一个使用GWT效果非常好的项目。 这对我们来说是一个不错的选择,因为我们都是主要从事内部工具的Java开发人员。 我不能说它对大型最终用户网站有多大用处。

我特别欣赏的一个优点是无缝对象序列化和反序列化。 XML-RPC的细节不仅被抽象出来,而且由于相同的Java代码被编译为服务器的字节代码和浏览器的javascript,因此您可以编写代码,就好像服务器和客户端在单独的类加载器中运行一样相同的JVM。 例如,您可以在服务器上构造Java对象,将其作为RPC服务调用的返回值发送到浏览器,然后浏览器代码可以使用相同的Java类来操作刚刚返回的对象。 同样,RPC调用的参数可以构造为Java对象,服务器在另一端接收相同的Java对象。 所有这一切都没有在(de)序列化的细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM