转:zkjbeyond 好文章

   这几个月都沉迷在ajax这种”让人抓狂“的技术中。有几点感想,交流交流。也算提问,希望高手解答解答。
   这里的ajax不包括XUL,google web toolkit之类的技术。

一 专业的ajax技术人员需要掌握多少技术
   javascript ,xhtml,css,dom这些硬件条件不用说了。
   理解ajax新型b/s应用程序是个困难的过程,忘掉你b/s系统开发经验也是个挑战。
   设计出强壮,稳定的系统是个必备的,浏览器不是个很健壮的载体。你的ajax应用还没有传统的b/s应用好用,那就狼狈了。
二 避免完美主义
  程序员太完美主义了,javascript语言的灵活性也让你太容易不满意自己的代码了,丰富的页面表现也让你太不满意自己的UI了。可能是你能力不够,但太多的完美会让你的进度停滞。
  如果你没有足够多的ajax经验,不要太轻易的尝试新技术。

三 修炼内功
  ajax类库的发达,javascript...的普及性,程序员实现一个小的“ajax”应用太容易了。如联动下拉框,Auto Complete....。相信我,ajax技术还不成熟,还有太多需要挖掘的内容,需要大家的努力,修炼内功吧。

四 两类patterns
  1 http://ajaxpatterns.org/ ajax in action 等提到的各种模型,技巧,类似“四人帮的设计模式”的组织形式。http://softwareas.com/ajax-patterns 也总结了一下。感觉这类网站书籍提到的技巧模型相对有些混乱,希望哪位大牛或集体总结出一本权威来。  可能这些模型需要框架实现者摸索的总结出来。
  ajax in action提到很多模型,dlee也做了个总结,也提供了些实现的小例子,但这些例子相对与成熟的ajax框架来说,有些简单。可能是我太依赖ajax框架了吧。

  2 http://developer.yahoo.com/ypatterns/atoz.php 恕我孤陋,只知道这个地址。yahoo从应用层面上总结了这么些patterns。这些模型以yahoo的应用为例,对应用规划者提供了好些总结。就这些模式,dojo,yui基本提供了支持。
   我觉得系统设计者应该好好研究一下这些东西。经常听到这些话。**系统用到了ajax技术,我们下个项目用到了prototype.js,dwr...框 架。感觉这类言语显的太不专业。应用了某个ajax类库也显的你没有目标性,也不是很清楚这些类库给你的应用带来什么。

五 如何选择开源框架
  太多了开源类库,框架让我们应接不暇。现在很多大公司google,ibm.sun,oracle....公司组织都来关注ajax,另外不计其数的开源实现。让人头痛。
  ajax in action 把这些框架分了三类。 prototype.js及扩展项目,dojo,yui...关注表现的类库。dwr,json,buffalo...关注数据传输的框架,最后是xul,gwt(我没有关注)等。
  客户端类库由javascript语言实现,并且相对代码量不大,重构容易。javascript语言太容易让人抄袭,所以除了它们关注点不一致外,很多功能不是独有的。所以从功能上看,都差不多。

  我觉得应该从以下几个方面考虑:
  1 namespace的支持。如果没有这个支持,这个项目不会发展很大的。
  2 经过详细的测试,大型项目的试用。
  3 后面有公司的支柱。
  4 活跃性。
  5 文档支持
    
  我自己现在对YUI比较看好,dojo官网用让我对dojo有些担忧。

关于dwr,json..这类框架的选择我觉得关注
  1 传输的是xml json。看你客户端的选择了。
  2 性能
  3 与服务器端框架的集成度。如spring,pico,struts,webwork....
  4 是否容易与你客户端UI控件容易绑定。
六 学会重构
  javascript语言更需要 测试 和 重构 的工具支持。javascript语言太灵活,代码太脆弱。
  可能javascript,ajax设计模式相对成熟后,重构会让我们更容易些。
七 写给自己
    研究ajax,让自己陷入泥沼。ajax牵扯到的技术,知识太多了。太多的框架,太多的新的思想,太让自己陷入“完美主义”。可能今晚写的javascript代码,明天就会不满意。自己实现的框架会越来越不满意。观望,修炼内功。
   
 
本来有些想法,可就是表达不好。郁闷郁闷.....