Archive for May, 2007

AJAX: 模式?实践!

Saturday, May 26th, 2007

我一直以为自己已经不需要看任何与AJAX相关的书籍了──无论是我过去的工作(XMLHttp based BI client, LiveChat…),还是我现在在这方面所做的工作(amowa, buffalo, OPOA),都或多或少不能让我看清楚这个领域更多更新的东西。然而大概读完《AJAX模式与最佳实践》后,我才了解到,自己那些对AJAX这个buzz word的零散理解居然可以被系统整理到这样清晰、易懂并且可实践。

任何实践都只能是一个系统化理论的切片。虽然AJAX赖以生存的关键技术XMLHTTP早已实现,但自从Google推出Gmail之后,相关的讨论才如雨后春笋纷纷出土。各种语言、各种平台、各种所谓的最佳实践、对这种技术的种种好处、罪过的讨论,瞬间涵盖了去年至今的大部分技术话题。这种出现既有历史的原因──IT系统已经不仅仅满足到“能工作”这个阶段,还上升到了“可用”、“易用”了;还有技术成熟度的原因──悄然之间Xmlhttp已经在主流浏览器全部实现了。由于优秀的部署模型,越来越多的企业采用Web技术来实现他们的业务系统。AJAX成为改善用户体验的关键技术。然而,正如前面所说,太多的实现、讨论,让开发人员在进行选型与技术实现的时候思考再三。特别是刚开始进行技术转型的开发人员,在众多的迷惑面前,往往不知道怎么做才是正道。

《AJAX模式与最佳实践》解除了所有的迷雾。通过模式的阐述方式,这本书将每一种模式意图、动机、适用性、架构、实现以及注意事项表现在你面前。读这本书的时候,我发现自己之前所做的思考和工作,居然都在这9种模式中,而且有了贴切的名字。模式中的阐述,已经远远超过了零星的思考,更加全面,更具指导力。作者Christian Gross深厚的技术背景,将这些看似繁杂的技术分解,总结出适用于绝大多数人场景的9种模式。同时应该感谢李锟及其团队的努力。在翻译这本书的过程中,我听到了李锟的诉苦。谢天谢地,他坚持下来了。

距离

Monday, May 21st, 2007

从没有想法到有想法:1步。

从想法到开始行动:1公里。

从行动到完成:100公里。

从完成到成功:100光年。

Distances

杂谈:Mac, 注意力,好的产品

Thursday, May 10th, 2007

这两天一直处在拥有一台MacBook Pro的兴奋当中。毫无疑问,MacBook Pro是几乎每一个程序员梦寐以求的终极开发平台,无论是硬件还是软件,Apple一贯的简约华丽让人过目难忘。在过去一年多里,在windows/linux上,我一直在寻找OSX外观的模仿,OSX软件的模仿,现在那些日子终于过去了,我手上,现在,敲出的这些文字,正出自MacBook Pro, MA609.

去年我在悉尼的时候Gianny Damour(Geronimo commiter之一,ThoughtWorker)说,Mac能够显著提高生产力。我当时不以为然;然而现在在OSX上写着代码,我大概明白了为什么能显著提高生产力:原因在于注意力。

看得出来Mac OSX花了很大的心思在让用户忽略OSX本身上。在使用Dell D610的时候,每次开机,右下角的那些驻留程序一个又一个的启动,浮出不同的提示告诉你,嘿,我启动成功了;我找到了一个无线网络,我连上了,等等。Mac启动很快,大概二三十秒,短暂的开机音乐后,系统启动完成,上面浮出Finder的菜单,下面浮出Dock面板,机器就安静的等待着你的指令。无线网络自动连上了并且以深色显示在右上角上,没有多余的声音、动画。开启一个程序,菜单条在最顶上,这是因为任何一个稍具经验的聪明的用户使用菜单的频率都远小于使用窗口本身,加上快捷键的支持,菜单只是一个入门的手段。用户的注意力在窗口本身而不是菜单,既节约了屏幕空间,又节约了时间。

Aqua界面简洁清爽。大多数成功的Web 2.0应用或多或少借鉴了osx的设计:看看Google Calendar和iCal;看看37Signals的产品。干净设计加上对用户注意力的保护,这种应用很难不在现今内容堆砌的web应用海洋中崭露头角。

说到Mac,自然要提TextMate的。emacs和VIM的愤青族自然要保护他们钟爱的编辑器:功能强大,自定义能力极强,无所不能的编辑功能,等等。没错TextMate要比emac、vim在单文件的编辑上能力要弱,但是……问题是那么多功能,需要开发需要记忆的功能,你真得用得上吗?作为现代编辑器,基本的tab编辑,简单但是快速的项目支持,多文件导航,emacs, vim显得有点力不从心。更重要的是,根据大多数程序员的经验整理而出的Bundle, 是对开发生产力的极大提升。我想好的产品,除了功能不能弱之外──TextMate的编辑能力还是很强的──更重要的是不让程序员做重复的事情,特别是在动态语言如此流行的今天,TextMate这款编辑器做到了极致。没有很复杂的技术,没有超越emacs/vim的编辑能力,仅仅通过添加项目支持和Bundle, 使得它的用户一经使用,便爱不释手。

Mac带给我的不仅仅是一台新的机器,更重要的是提高了生产力,以及界面、交互上的一些思路以及在制造成功产品方面的一些思考。我更加坚信buffalo所走的“简单”的道路是正确的,事实上,无论产品的制造者如何考虑,产品的使用者总是希望产品能够带来强大功能的同时不丧失使用的简单性。

想象的黄昏

Saturday, May 5th, 2007

很久以来我一直在JavaEye的AJAX和海阔天空板块转悠,突然有一天注意到首页已经面目全非:以前只有导航,没什么人问津的博客之星,剩下的内容主要就是最近好贴及其摘要了;现在突然变成了典型的“无意识导航”的首页:到处都是链接,大大的没什么含义的所谓新闻图片,频道一个接一个,链接一堆连着一堆,一眼望去让人生畏:这个世界倒退了么?回到了CSDN、奇虎之类的那种类型的站点了么?JavaEye的读者突然发现自己不能主动选择要读什么而选择在链接的海洋里游弋么?

我现在已经很少去51JS,但前些日子偶尔跑去,突然发现了首页由原来的论坛,已经变成了大杂烩,从JavaScript初级问题到高级概念,从ASP到JSP,从冰天雪地跪求到聊天灌水。一摞摞的链接看得人眼花缭乱。

想象力就这么容易被环境同化吗?Web的想象力,已经日薄西山,到了黄昏了吗?

这里我并不想讨论新型UI和旧的UI之前的差别,只是从亦步亦趋的这种方式,不是一种好的态度,更重要的是,他会损伤用户的期待。这方面失败的例子,是大名鼎鼎的谷歌。这个带着Google帽子的中国公司,几乎从取名到现在,几乎没有做过一件让他的粉丝高兴的事情,甚至觉得丢人:Google上网导航?百度笑了;谷歌拼音输入法?搜狗笑了。跟在竞争对手的屁股后面亦步亦趋,不仅是迟钝的,更重要的是从一家以创新型著称,以整合信息为使命的互联网公司,这是不可接受的。

Stabletable是一个英国人的专利,原理很简单,就是用一叠橡胶片来调节高度,从而垫住不稳的桌子。这个小发明在申请专利的时候得到了耻笑,说是这是世界上最没有价值的专利。然而两年后,专利的主人在网上销售了总价值500万英镑的橡胶垫片,并把生意做到了海外,宜家等都从他那里订货。这是想象,这是坚持,这是不与世俗妥协。当屈从于大众的做法、想法的时候,想象就到了黄昏,很快就沉入黑夜。只有破陈出新,才可能形成真正的竞争力,并吸引那些真正喜欢你产品 的人。