Google高调发布了Google Gears,一个离线 web框架。随着ajax技术的大量应用,web应用程序开始转向Rich Client的方向,这类程序需要从server端获取大量的javascript代码,并且在客户端不能保存太多的状态值,即时要保准这些状态值,当关 闭浏览器以后,这些值就消失了,要真正做到Rich Client,如传统的C/S程序,web应用程序还是有太多来至浏览器的限制。而且客户端的每次影响状态改变的操作需要即时同步到服务器端,导致了客户 端和服务器的通讯量增大。
种种限制必将影响ajax技术的发展。这也是这两年ajax应用增多以后,很多公司都遇到了同样的问题,于是纷纷开始考虑离线web技术。现在可以选择的离线web技术除了google gears外,还有:
- Apollo (Adobe)
- Dojo Offline Toolkit (Dojo/Sitepen)
- Slingshot (Joyent/Magnetk)
- Firefox 3 Offline Support (Mozilla)
- XUL Runner (Mozilla)
- Zimbra
这几个框架或者技术里面,从现有的状态来看,google gears的跨平台能力相对较强。现在支持ie6.0+、firefox1.5+,同时支持windows/mac/linux。
Google Gears已经开源,有心想成为offline web的一个标准,但是从现在的状态来看,还有更长的路要走,毕竟这项技术刚刚起步,其他公司也不可能放弃自己的技术来支持gears,微软还没有发布类 似的技术框架,估计今年内也会有类似的产品出来。如果google真有心把gears做成一个业界的标准,建议向IBM学习,学学Eclipse是如何一 统天下的,首先不要叫Google Gears,去掉google的影子,然后搞个几千万美金成立一个基金会,独立来运作,这样更容易吸引其他公司参与进来。
Tags: Gears.
从程序员的角度来看,如何保准软件的质量或者说代码的质量:
- 单元测试(unit testing):单元测试可以保准代码在输入一定的情况下,可以获得预期的输出,在方法级别上保准了代码逻辑的正确性。现在主流的开发工具都集成了单元测试框架,JUnit已经是大多数开发人员能够熟练使用的一个测试框架。
- 静态分析(static analysis):通过一个静态分析工具,分析代码中存在的bug或者一些不规范的写法,常用的工具有CheckStyle,PMD,FindBugs。
- 持续集成(continuous integration):用持续集成框架,大大简化程序发布、安装的过程,同时可以把单元测试,代码静态分析都集成在里面,这样大大缩短了迭代时间,使潜在的问题可以尽早的暴露。持续集成框架有CruiseControl,Continuum。
- 代码回顾 (code review):任何工具的使用都及不上人的眼睛,尤其是设计和架构上的缺陷,用工具是没法发现的,通过代码回顾,就有可能发现设计和架构上的一些问题,同时代码回顾也是团队内部传递知识的一种有效的途径。
Tags: CheckStyle,Continum,CruiseControl,FindBugs,PMD.
两个数据库都是用纯Java编写,多用于桌面应用程序或者小型的web应用程序中。比如BlogMethods Basic的数据库用的就是Hsqldb,用这两个数据库的好处是不用另起进程来启动数据库,而是可以直接在应用程序中直接访问,或者可以理解为内存数据库和文件数据库。这两个数据库有什么区别或者该如何取舍这两个数据库。
Hsqldb的优势:
- 速度超快
- 占用内存小
- 可以用文本编辑器直接查看由sql组成的数据,利于测试
- 有广泛的口碑和应用如openoffice
Hsqldb的劣势:
- 数据库最大容量为8gb,所以如果保存一些大的二进制数据在数据库中,数据库会很快达到上限
- 对于大访问量的服务端应用程序,hsqldb不如derby来的优秀
- Derby比Hsqldb支持更多的SQL标准如触发器,存储过程,视图等
Tags: Derby,Hsqldb.