《Ajax模式與最佳實踐》試讀感想
作者Christian Gross是一位咨詢顧問、培訓師和技術(shù)指導,在互聯(lián)網(wǎng)領(lǐng)域有著非常豐富的經(jīng)驗。 作者很多觀點可能有些片面,可能與他在互聯(lián)網(wǎng)領(lǐng)域豐富的經(jīng)驗有關(guān)。如:ajax好象不是只用數(shù)據(jù),而不反饋數(shù)據(jù)吧! 看書有個習慣,對于前言附錄之類的往往看的特別認真。尤其是這類講解"較新技術(shù)"的書籍,往往表達了作者對新技術(shù)的思考、觀點,以及 作者的沉淀。 隨便摘作者幾個觀點說說: 一、Ajax之所以是Ajax,是因為這些新的技術(shù)可以以嶄新的和有趣的方式來相互組合 強調(diào)了多次,但很容易被我們忽視。編寫Ajax,卻忽視了REST、忽視了XML、忽視了JSON、甚至忽視了JavaScript,可能我們都是忽視某些 技術(shù)的一員。 但我們也沒辦法,我們不可能掌握如此多的技術(shù),也可能處理不好它們之間的關(guān)系。所以各種ajax框架/tools都被大家青睞。 舉兩個例子: 1、echo2/gwt/jsf-ajax,這種服務(wù)器端語言編寫“ajax”應(yīng)用的框架是javascript/dom/css生疏者的首選。對于我這種略懂javasccipt/dom/c ss的技術(shù)人員來說,很難接受這類框架。相信從asp走來的很多web開發(fā)人員也不愿意用這類框架。 這類框架選擇人員很可能是熟悉后臺開發(fā)的工程師,這些人心里怯喜,我不用學javascript/som/css等就可以開發(fā)出如此玄的效果。但是任 何公司開發(fā)web應(yīng)用會沒有前臺設(shè)計師(或許真是如此)嗎?如果前臺設(shè)計人員可以用javascript/dom/css達到比gwt更好效果師你還會用它們 嗎? 2、prototype.js/jquery/dwr... 這類工具庫或者語言擴展庫為我們提供了什么,難道用它們的應(yīng)用程序就是ajax應(yīng)用程序嗎(偶也不清楚什么才算ajax應(yīng)用程序)?難道我 寫$()和document.getElementById()對我的應(yīng)用有實際的改觀嗎? 3、dojo dojo很優(yōu)秀,功能也很強大。是否你也與我有同樣感覺。拿到他不知該如何合適的引入到項目中,可能我們還不能完全的熟悉dojo,我們都 不知道系統(tǒng)是否需要dojo提供的功能。(把prototype.js介紹給同事,他們只用了prototype.js 3%-5%的函數(shù)) 它們只能方便開發(fā)人員,提高開發(fā)效率。但軟件的質(zhì)量不是效率。 ...... 如果看到這,估計還沒明白我扯了半天什么??偨Y(jié)一下: a、ajax是為了使 1+1>2,而不是讓我們更容易、更迅速的得到 1+1=2; b、很多人眼中ajax就是framework/toolkit.注意Dojo也只是 a JavaScript toolkit. (在我眼中,dojo給我最大的收獲是, dojo widgets讓我 了解ajax UI的生命周期) c、從應(yīng)用角度考慮ajax吧。dwr只是能 方便 你無刷新的獲取提交數(shù)據(jù)。你需要關(guān)心的是無刷新三個字,而不要太多考慮在dwr/json-rpc/Buffalo選擇上爭論不休。 d、既然ajaxjvascript/dom/css.....組成,你開發(fā)的時候可以不考慮它們,但設(shè)計的時候呢?不知大家有無這樣體會,設(shè)計web界面時,找來 一堆widget庫,拼裝成一組頁面。 二、Ajax代表著一種嶄新的建造應(yīng)用的方式 這個提法不錯,走出思維定視。 太多的ajax PK 傳統(tǒng)web/ajax PK 桌面,恰恰反映了大家對ajax的關(guān)注或恐慌。從技術(shù)角度比較我比較喜歡,但很多時候大家很難從想同 的高度,相同的起點出發(fā)考慮問題。俺也沒必要管那么多了,但毫無疑問, ajax代表著一種嶄新的建造應(yīng)用的方式??蛻舳伺c服務(wù)器端進行了解耦,數(shù)據(jù)與表現(xiàn)分離 這種新的方式我無法描述,書中也沒細找,可能誰也不好給個總結(jié)。但很喜歡這種提法,但我感覺 javascript/dom/css 不是最好的實現(xiàn) 技術(shù),但http是最適合的協(xié)議。ajax被替代,最主要原因是 瀏覽器支持標準的不統(tǒng)一,javascript/dom/css標準問題。dlee認為ajax發(fā)展最大 組力是標準,我想阻力也不小。 試想 如果我們編寫 javascript/dom/css 根本不用考慮版本、是否被支持,那該是一種什么光景。 醒來寫過篇文章,他公司開發(fā)的一個“圖片瀏覽”系統(tǒng),參考了***等幾個例子,據(jù)他說從幾個例子中學到prototype/script.aculo.us等 不少妙用??戳四菐讉€例子,有個感覺,“我怎么想不到呢?”。如何用"ajax"思想構(gòu)建系統(tǒng),更好的應(yīng)用ajax思想,這么書給了我們捷徑。 再說,ajax的老鼻子,google maps/google mail,帶給我們的是應(yīng)用沖擊,而不是技術(shù)沖擊。后來冒出多少 **maps/** mail。 只有想不到,沒有做不到。放到ajax這個階段最好。我們盡量考慮如何應(yīng)用ajax技術(shù)提升你的應(yīng)用競爭性吧!讓那些“高人”考慮做到做 不到吧。 三、關(guān)于ajax服務(wù)器端框架 摘作者一段話: 某些個別人很喜歡販賣某種服務(wù)器端框架,據(jù)說可以依賴此框架來實現(xiàn)Ajax。如果Ajax對于客戶端和服務(wù)器端的解耦是重要的,為何必須 要使用一個服務(wù)器端框架來實現(xiàn)Ajax?這樣的邏輯簡直毫無意義。我能夠理解的一個論點是,可以擴展一個框架來支持Ajax一類的架構(gòu)設(shè)計。 但是我不能接受這樣的論點,即,一個服務(wù)器端框架是開發(fā)Ajax應(yīng)用所必需的。 如果你看了這本書,可能你會同意作者的觀點,因為作者用較高的角度來看ajax??梢詳U展一個框架來支持Ajax一類的架構(gòu)設(shè)計,是的, 可以減輕我們開發(fā)難度,但僅僅是對開發(fā)人員開發(fā)效率的角度。對軟件質(zhì)量提升作用不大。 其實不光是ajax,webwork/struts,.net/j2ee,爭論何時修。 四、模式列表 第3章 內(nèi)容分塊模式 第4章 緩存控制器模式 第5章 置換模式 第6章 解耦導航模式 第7章 表現(xiàn)變形模式 第8章 持久通信模式 第9章 狀態(tài)導航模式 第10章 無限數(shù)據(jù)模式 第11章 基于REST的模型-視圖-控制器模式 很可惜,我們一般開發(fā)ajax應(yīng)用都是基于一定的ajax框架,很多框架都實現(xiàn)的某些或其他的模式,如何實現(xiàn)這些模式或應(yīng)用它們對我們來說, 也是個麻煩事。 很不錯的一些最佳實踐,是我們開發(fā)ajax-REST好的參考書。如果大家有興趣開發(fā)這類應(yīng)用,yahoo javascript center http://developer.yahoo.com/javascript/ 有些不錯的文章。 有些引用不是譯者最終定稿。感謝譯者做的工作! |
|