《Ajax模式与最佳实践》试读感想

来源:百度文库 编辑:神马文学网 时间:2024/05/01 21:54:00
作者Christian Gross是一位咨询顾问、培训师和技术指导,在互联网领域有着非常丰富的经验。
作者很多观点可能有些片面,可能与他在互联网领域丰富的经验有关。如:ajax好象不是只用数据,而不反馈数据吧!
看书有个习惯,对于前言附录之类的往往看的特别认真。尤其是这类讲解"较新技术"的书籍,往往表达了作者对新技术的思考、观点,以及
作者的沉淀。
随便摘作者几个观点说说:
一、Ajax之所以是Ajax,是因为这些新的技术可以以崭新的和有趣的方式来相互组合
强调了多次,但很容易被我们忽视。编写Ajax,却忽视了REST、忽视了XML、忽视了JSON、甚至忽视了JavaScript,可能我们都是忽视某些
技术的一员。
但我们也没办法,我们不可能掌握如此多的技术,也可能处理不好它们之间的关系。所以各种ajax框架/tools都被大家青睐。
举两个例子:
1、echo2/gwt/jsf-ajax,这种服务器端语言编写“ajax”应用的框架是javascript/dom/css生疏者的首选。对于我这种略懂javasccipt/dom/c
ss的技术人员来说,很难接受这类框架。相信从asp走来的很多web开发人员也不愿意用这类框架。
这类框架选择人员很可能是熟悉后台开发的工程师,这些人心里怯喜,我不用学javascript/som/css等就可以开发出如此玄的效果。但是任
何公司开发web应用会没有前台设计师(或许真是如此)吗?如果前台设计人员可以用javascript/dom/css达到比gwt更好效果师你还会用它们
吗?
2、prototype.js/jquery/dwr...
这类工具库或者语言扩展库为我们提供了什么,难道用它们的应用程序就是ajax应用程序吗(偶也不清楚什么才算ajax应用程序)?难道我
写$()和document.getElementById()对我的应用有实际的改观吗?
3、dojo
dojo很优秀,功能也很强大。是否你也与我有同样感觉。拿到他不知该如何合适的引入到项目中,可能我们还不能完全的熟悉dojo,我们都
不知道系统是否需要dojo提供的功能。(把prototype.js介绍给同事,他们只用了prototype.js 3%-5%的函数)
它们只能方便开发人员,提高开发效率。但软件的质量不是效率。
......
如果看到这,估计还没明白我扯了半天什么。总结一下:
a、ajax是为了使 1+1>2,而不是让我们更容易、更迅速的得到 1+1=2;
b、很多人眼中ajax就是framework/toolkit.注意Dojo也只是 a JavaScript toolkit. (在我眼中,dojo给我最大的收获是, dojo widgets让我
了解ajax UI的生命周期)
c、从应用角度考虑ajax吧。dwr只是能 方便
你无刷新的获取提交数据。你需要关心的是无刷新三个字,而不要太多考虑在dwr/json-rpc/Buffalo选择上争论不休。
d、既然ajaxjvascript/dom/css.....组成,你开发的时候可以不考虑它们,但设计的时候呢?不知大家有无这样体会,设计web界面时,找来
一堆widget库,拼装成一组页面。
二、Ajax代表着一种崭新的建造应用的方式
这个提法不错,走出思维定视。
太多的ajax PK 传统web/ajax PK 桌面,恰恰反映了大家对ajax的关注或恐慌。从技术角度比较我比较喜欢,但很多时候大家很难从想同
的高度,相同的起点出发考虑问题。俺也没必要管那么多了,但毫无疑问,
ajax代表着一种崭新的建造应用的方式。客户端与服务器端进行了解耦,数据与表现分离
这种新的方式我无法描述,书中也没细找,可能谁也不好给个总结。但很喜欢这种提法,但我感觉 javascript/dom/css 不是最好的实现
技术,但http是最适合的协议。ajax被替代,最主要原因是 浏览器支持标准的不统一,javascript/dom/css标准问题。dlee认为ajax发展最大
组力是标准,我想阻力也不小。 试想 如果我们编写 javascript/dom/css 根本不用考虑版本、是否被支持,那该是一种什么光景。
醒来写过篇文章,他公司开发的一个“图片浏览”系统,参考了***等几个例子,据他说从几个例子中学到prototype/script.aculo.us等
不少妙用。看了那几个例子,有个感觉,“我怎么想不到呢?”。如何用"ajax"思想构建系统,更好的应用ajax思想,这么书给了我们捷径。
再说,ajax的老鼻子,google maps/google mail,带给我们的是应用冲击,而不是技术冲击。后来冒出多少 **maps/** mail。
只有想不到,没有做不到。放到ajax这个阶段最好。我们尽量考虑如何应用ajax技术提升你的应用竞争性吧!让那些“高人”考虑做到做
不到吧。
三、关于ajax服务器端框架
摘作者一段话:
某些个别人很喜欢贩卖某种服务器端框架,据说可以依赖此框架来实现Ajax。如果Ajax对于客户端和服务器端的解耦是重要的,为何必须
要使用一个服务器端框架来实现Ajax?这样的逻辑简直毫无意义。我能够理解的一个论点是,可以扩展一个框架来支持Ajax一类的架构设计。
但是我不能接受这样的论点,即,一个服务器端框架是开发Ajax应用所必需的。
如果你看了这本书,可能你会同意作者的观点,因为作者用较高的角度来看ajax。可以扩展一个框架来支持Ajax一类的架构设计,是的,
可以减轻我们开发难度,但仅仅是对开发人员开发效率的角度。对软件质量提升作用不大。
其实不光是ajax,webwork/struts,.net/j2ee,争论何时修。
四、模式列表
第3章    内容分块模式
第4章    缓存控制器模式
第5章    置换模式
第6章    解耦导航模式
第7章    表现变形模式
第8章    持久通信模式
第9章    状态导航模式
第10章    无限数据模式
第11章    基于REST的模型-视图-控制器模式
很可惜,我们一般开发ajax应用都是基于一定的ajax框架,很多框架都实现的某些或其他的模式,如何实现这些模式或应用它们对我们来说,
也是个麻烦事。
很不错的一些最佳实践,是我们开发ajax-REST好的参考书。如果大家有兴趣开发这类应用,yahoo javascript center
http://developer.yahoo.com/javascript/ 有些不错的文章。
有些引用不是译者最终定稿。感谢译者做的工作!