之前在Vanessa的Blog中知道有GWT,初看了一下功能,确实蛮符合我的口味的,并答应要研究一下。前几天公司项目的一个规格要写,挺赶时间的,没来的及,今天周末上来,就看了一下。还是有点收获的,至少知道啥是GWT了。 google搜索引擎查出来的资料很多,糟粕和重复的文章也不少,我整理和过滤了一下,剩下的绝对是精华了,大家有兴趣的可以直接访问:http://www.1000100hui.com/Control.html?PageIndex=28&PageTypes=51 记载的文章很多,重复内容的我就不多说了,只说一下我的感受。 GWT我直接感受就是把javascript转换成java来开发的框架。而关于页面的开发,我发现至少(java方面是这样的)已经有非常非常多的架构了。包括JSP(这个是最土的)VM、JFS、EXT、Struct等等。为何出现那么多这种技术呢?我想原因一定是原来的架构会存在一定缺陷。是的,原来的结构中,java和页面,就是两个领域的东西,一个关注于逻辑,一个关注于展现。但是面对程序员,要处理这截然不同的两门技术,那就困难了。所以,后面为提高效率,出现了很多这种页面框架,用以提高页面工程的开发效率。但至今没有一个是完美的(要不然不会层出不穷发现很多新花样)。 我觉得,这里最困难的地方就是“混合体的问题”,同一个功能逻辑下来,要经过两个完全不同的技能方向的人员进行开发。确实是很痛苦。而反观,这些框架,JSP、VM等模板类型的处理方式,不但没有解决问题,反而将问题更复杂话。把逻辑代码和页面代码弄的更加血肉模糊。大家可能有经验,反正我是对jsp深恶痛绝。原因是这个东西根本无法作有效单元测试,只能通过把环境搭建起来后,慢慢的在页面上跑。效率及其的低下! 这个问题的解决,有两个方向,一个是彻底隔离。页面就去请美工做,逻辑请程序员做。把双方之间的接口定好,各自测试各自的,谁都不影响谁。我比较喜欢这种方式,不过这个不是今天讨论的问题。另外一种方向就是,把其中一个东西变成另外一个东西来处理。 我想GWT用的就是第二种方式来解决这个问题的。将页面工程转换成java,最后用工具转换生成出javascript和html!所以,大家看GWT的时候,会觉得,哇这个简直就是java的UI编程,一摸一样嘛! 由这种模式带来的好处我就不说了,外面的文章凡是提到GWT的,都会说明1、2、3、4、5点等等。。。。。。 我想说的是几个GWT的问题,不,应该是说我的疑问吧。 1。GWT在开发上确实能提高效率吗?简单的说从代码量的角度上讲,它仅仅是把几个常用的JS代码转换封装了一下。但是我个人觉得从语言表达的能力来说,java和javascript应该是一个级别的。应该不会存在一个比另外一个高效多少的问题。准确来讲,javascript更灵活,但java更严紧。两者在全流程开发上面(SRS、Design、Coding、Testing)两点差别基本上相互补平了。 2。页面丰富性,我始终觉得java的Swing开发模式不会比html优秀。而且针对现在层出不穷的页面开发工具,就不要从效率上说明了,就是从效果上讲,差别就不是一个数量级的了。当然GWT有它的办法可以泥补这点,因为GWT设计确实灵活,它甚至可以只对页面的一个小部分如,某个Div里面做一个模块进行设计。我看的东西还不多,以上是我的一些思考的观点,注意,并不是我反对GWT。我说过了,GWT的优点到处都有,不用我再罗嗦了而已。这是来自IBM上的文章节选:在代码生成的情形中 GWT 架构中最具争议的问题可能就是在客户端代码中对 Java 语言的切换。有些 GWT 的拥护者认为用 Java 语言编写客户端代码实际上要比编写 JavaScript 好。并不是所有人都赞成这个观点,许多 JavaScript 程序员极不情愿牺牲他们语言的灵活性和表现力,来获得有时非常繁重的 Java 开发工作。用 Java 代码代替 JavaScript 比较有吸引力的一种情况就是:团队缺少有经验的 Web 开发人员。但是,如果团队正在转向 Ajax 开发,那么最好是雇佣有经验的 JavaScript 程序员,而不要依靠 Java 程序员利用私有的工具生成混乱的 JavaScript。由于 GWT 扩展到 JavaScript、HTTP 和 HTML 的漏洞所导致的 bug 是不可避免的,所以缺乏经验的 Web 程序员要花很长时间跟踪它们。作为开发人员和博客,Dimitri Glazkov 指出:“如果不能处理 JavaScript,就不应当编写 Web 应用程序的代码。HTML、CSS 和 JavaScript 是这条路上的三个必备条件。”(请参阅 参考资料)。 有些人认为因为有了静态类型化和编译时检测,Java 编码天生就比 JavaScript 编程不容易出错。这是一个相当靠不住的论调。用任何语言都可能编写糟糕的代码,大量充满 bug 的 Java 应用程序就是证明。也可以依靠 GWT 的代码生成来消除 bug。但是,离线语法检测和客户端代码的验证无疑会带来一些好处。JavaScript 也可以用 Douglas Crockford 的 JSLint 的形式得到它(请参阅 参考资料)。GWT 在单元测试上有优势,可以为客户端代码提供 JUnit 集成。单元测试支持仍然是 JavaScript 很欠缺的一个领域。 在开发 Weather Reporter 应用程序时,我发现客户端 Java 代码最引人注目的情况是它在两个层上共享一些验证类的能力。这显然减少了开发劳动。跨 RPC 传递的任何类都适用这种情况;只需要编码一次,就可以将它们用在客户机和服务器代码中。不幸的是,抽象是有漏洞的:例如,在我的 ZIP 代码验证器中,本想使用正则表达式执行检测。但是,GWT 没有实现 String.match() 方法。而且即使它实现了这个方法,在将 GWT 中的正则表达式部署到客户机和服务器代码时,也存在语义上的差异。这是因为 GWT 对宿主环境底层的正则表达式机制的依赖也是不完美抽象所带来问题的一个例子。 GWT 非常被看好的一个重要原因是它的 RPC 机制和内置在 Java 代码和 JavaScript 之间的对象序列化。这消除了普通 Ajax 应用程序中可以看到的许多繁重工作。但是,它是有前提的。如果想使用这个功能而不使用 GWT 的其他部分,那么 Direct Web Remoting(DWR,它用 Java 代码和 JavaScript 之间的对象伪装提供了 RPC 功能)非常值得考虑(请参阅 参考资料)。 对于将 Ajax 应用程序开发的一些低层方面(如跨浏览器的不兼容、DOM 事件模型和进行 Ajax 调用)抽象出来,GWT 做得很好。但是现代的 JavaScript 工具包(例如 Yahoo! UI 库、Dojo 和 MochiKit)都提供了类似级别的抽象,却不需要求助于代码生成。此外,所有这些工具包都是开源的,所以可以对其进行定制,以满足自己的需求,或者在出现 bug 的时候进行修补。对于黑盒子式的 GWT,这是不可能的。(请参阅 许可 侧栏)。 回页首 结束语 GWT 是一个全面的框架,提供了许多有用的功能。但是,GWT 并不是万能的,它针对的只是 Web 应用程序开发市场中一个相对狭窄的市场。我希望这份简要的介绍能让您对 GWT 的功能和局限性有一定的了解。虽然 GWT 肯定不会满足每个人的需求,但它仍然是一个主要的技术成果,在设计下一个 Ajax 应用程序时,值得认真地考虑 GWT。与我在这里介绍的相比,GWT 具有更广的广度和更深的深度,所以请阅读 Google 的文档,以了解更多内容,或者加入 GWT 开发人员论坛上的讨论(请参阅 参考资料)。
这只是第一印象,后面还要继续深入和挖掘,努力........
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
标题 "GWT通信机制初探" 指的是探讨Google Web Toolkit (GWT) 的通信方式,这是一种用于构建高性能、跨浏览器的JavaScript应用程序的开发框架。GWT通过编译Java代码到JavaScript,允许开发者使用Java语言来编写前端...
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
ACM动态规划模板-区间修改线段树问题模板
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
本项目为Python语言开发的PersonRelationKnowledgeGraph设计源码,总计包含49个文件,涵盖19个.pyc字节码文件、12个.py源代码文件、8个.txt文本文件、3个.xml配置文件、3个.png图片文件、2个.md标记文件、1个.iml项目配置文件、1个.cfg配置文件。该源码库旨在构建一个用于表示和查询人物关系的知识图谱系统。
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
rtsp实时预览接口URL:/evo-apigw/admin/API/MTS/Video/StartVideo HLS、FLV、RTMP实时预览接口方式 :接口URL/evo-apigw/admin/API/video/stream/realtime 参数名 必选 类型 说明 data true string Json串 +channelId true string 视频通道编码 +streamType true string 码流类型:1=主码流, 2=辅码流,3=辅码流2 +type true string 协议类型:hls,hlss,flv,flvs,ws_flv,wss_flv,rtmp hls:http协议,m3u8格式,端口7086; hlss:https协议,m3u8格式,端口是7096; flv:http协议,flv格式,端口7886; flvs:https协议,flv格式,端口是7896; ws_flv:ws协议,flv格式,端口是7886; wss_flv:wss协议,flv格式,端口是7896; rtmp:rtmp协议,端口是1975;
Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink永磁风机飞轮储能二次调频,系统频率特性如下,可改变调频参数改善频率。 参考文献详细,两区域系统二次调频。 ,核心关键词: 1. Simulink 2. 永磁风机 3. 飞轮储能 4. 二次调频 5. 系统频率特性 6. 调频参数 7. 改善频率 8. 参考文献 9. 两区域系统 以上关键词用分号(;)分隔,结果为:Simulink;永磁风机;飞轮储能;二次调频;系统频率特性;调频参数;改善频率;参考文献;两区域系统。,基于Simulink的永磁风机与飞轮储能系统二次调频研究:频率特性及调频参数优化
MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图展示,MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择。 选择冰路面以及雪路面,共两种路面条件,可进行选择。 控制目标为滑移率0.2,出图显示车速以及轮速对照,出图显示车辆轮胎滑移率。 模型简单,仅供参考。 ,MATLAB; ASR模型; 防滑转模型; 牵引力控制系统模型; PID控制算法; 对照控制算法; 冰路面; 雪路面; 控制目标; 滑移率; 车速; 轮速。,MATLAB驱动的ASR模型:PID与对照算法在冰雪路面的滑移率控制研究
芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx
4131_127989170.html
内容概要:本文提供了一个全面的PostgreSQL自动化部署解决方案,涵盖智能环境适应、多平台支持、内存与性能优化以及安全性加强等重要方面。首先介绍了脚本的功能及其调用方法,随后详细阐述了操作系统和依赖软件包的准备过程、配置项的自动生成机制,还包括对实例的安全性和监控功能的强化措施。部署指南给出了具体的命令操作指导,便于新手理解和执行。最后强调了该工具对于不同硬件条件和服务需求的有效应对能力,特别是针对云计算环境下应用的支持特点。 适合人群:对PostgreSQL集群运维有一定基础并渴望提高效率和安全性的数据库管理员及工程师。 使用场景及目标:本脚本能够帮助企业在大规模部署时减少人工介入时间,确保系统的稳定性与高性能,适用于各类需要稳定可靠的数据库解决方案的企业或机构,特别是在大数据量和高并发事务处理场合。 其他说明:文中还提及了一些高级功能如自动备份、流复制等设置步骤,使得该方案不仅可以快速上线而且能满足后续维护和发展阶段的要求。同时提到的技术性能数据也为用户评估其能否满足业务需求提供了直观参考。
房地产开发合同[示范文本].doc
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
工程技术承包合同[示范文本].doc
蓝桥杯开发赛【作品源码】