2007-06-20

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: .
2007-06-13

从程序员的角度来看,如何保准软件的质量或者说代码的质量:

  1. 单元测试(unit testing):单元测试可以保准代码在输入一定的情况下,可以获得预期的输出,在方法级别上保准了代码逻辑的正确性。现在主流的开发工具都集成了单元测试框架,JUnit已经是大多数开发人员能够熟练使用的一个测试框架。
  2. 静态分析(static analysis):通过一个静态分析工具,分析代码中存在的bug或者一些不规范的写法,常用的工具有CheckStylePMDFindBugs
  3. 持续集成(continuous integration):用持续集成框架,大大简化程序发布、安装的过程,同时可以把单元测试,代码静态分析都集成在里面,这样大大缩短了迭代时间,使潜在的问题可以尽早的暴露。持续集成框架有CruiseControlContinuum
  4. 代码回顾 (code review):任何工具的使用都及不上人的眼睛,尤其是设计和架构上的缺陷,用工具是没法发现的,通过代码回顾,就有可能发现设计和架构上的一些问题,同时代码回顾也是团队内部传递知识的一种有效的途径。
Tags: ,,,,.
2007-06-02

两个数据库都是用纯Java编写,多用于桌面应用程序或者小型的web应用程序中。比如BlogMethods Basic的数据库用的就是Hsqldb,用这两个数据库的好处是不用另起进程来启动数据库,而是可以直接在应用程序中直接访问,或者可以理解为内存数据库和文件数据库。这两个数据库有什么区别或者该如何取舍这两个数据库。

Hsqldb的优势:

  • 速度超快
  • 占用内存小
  • 可以用文本编辑器直接查看由sql组成的数据,利于测试
  • 有广泛的口碑和应用如openoffice

Hsqldb的劣势:

  • 数据库最大容量为8gb,所以如果保存一些大的二进制数据在数据库中,数据库会很快达到上限
  • 对于大访问量的服务端应用程序,hsqldb不如derby来的优秀
  • Derby比Hsqldb支持更多的SQL标准如触发器,存储过程,视图等
Tags: ,.