《Ajax模式与最佳实践》试读感想
作者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/ 有些不错的文章。 有些引用不是译者最终定稿。感谢译者做的工作! |
|