?? 這幾個(gè)月都沉迷在ajax這種”讓人抓狂“的技術(shù)中。有幾點(diǎn)感想,交流交流。也算提問,希望高手解答解答。
?? 這里的ajax不包括XUL,google web toolkit之類的技術(shù)。

一 專業(yè)的ajax技術(shù)人員需要掌握多少技術(shù)
?? javascript ,xhtml,css,dom這些硬件條件不用說了。
?? 理解ajax新型b/s應(yīng)用程序是個(gè)困難的過程,忘掉你b/s系統(tǒng)開發(fā)經(jīng)驗(yàn)也是個(gè)挑戰(zhàn)。
?? 設(shè)計(jì)出強(qiáng)壯,穩(wěn)定的系統(tǒng)是個(gè)必備的,瀏覽器不是個(gè)很健壯的載體。你的ajax應(yīng)用還沒有傳統(tǒng)的b/s應(yīng)用好用,那就狼狽了。
二 避免完美主義
? 程序員太完美主義了,javascript語言的靈活性也讓你太容易不滿意自己的代碼了,豐富的頁面表現(xiàn)也讓你太不滿意自己的UI了。可能是你能力不夠,但太多的完美會(huì)讓你的進(jìn)度停滯。
? 如果你沒有足夠多的ajax經(jīng)驗(yàn),不要太輕易的嘗試新技術(shù)。

三 修煉內(nèi)功
? ajax類庫的發(fā)達(dá),javascript...的普及性,程序員實(shí)現(xiàn)一個(gè)小的“ajax”應(yīng)用太容易了。如聯(lián)動(dòng)下拉框,Auto Complete....。相信我,ajax技術(shù)還不成熟,還有太多需要挖掘的內(nèi)容,需要大家的努力,修煉內(nèi)功吧。

四 兩類patterns
? 1 http://ajaxpatterns.org/ ajax in action 等提到的各種模型,技巧,類似“四人幫的設(shè)計(jì)模式”的組織形式。http://softwareas.com/ajax-patterns 也總結(jié)了一下。感覺這類網(wǎng)站書籍提到的技巧模型相對(duì)有些混亂,希望哪位大牛或集體總結(jié)出一本權(quán)威來。? 可能這些模型需要框架實(shí)現(xiàn)者摸索的總結(jié)出來。
? ajax in action提到很多模型,dlee也做了個(gè)總結(jié),也提供了些實(shí)現(xiàn)的小例子,但這些例子相對(duì)與成熟的ajax框架來說,有些簡單。可能是我太依賴ajax框架了吧。

? 2 http://developer.yahoo.com/ypatterns/atoz.php 恕我孤陋,只知道這個(gè)地址。yahoo從應(yīng)用層面上總結(jié)了這么些patterns。這些模型以yahoo的應(yīng)用為例,對(duì)應(yīng)用規(guī)劃者提供了好些總結(jié)。就這些模式,dojo,yui基本提供了支持。
?? 我覺得系統(tǒng)設(shè)計(jì)者應(yīng)該好好研究一下這些東西。經(jīng)常聽到這些話。**系統(tǒng)用到了ajax技術(shù),我們下個(gè)項(xiàng)目用到了prototype.js,dwr...框架。感覺這類言語顯的太不專業(yè)。應(yīng)用了某個(gè)ajax類庫也顯的你沒有目標(biāo)性,也不是很清楚這些類庫給你的應(yīng)用帶來什么。

五 如何選擇開源框架
? 太多了開源類庫,框架讓我們應(yīng)接不暇。現(xiàn)在很多大公司google,ibm.sun,oracle....公司組織都來關(guān)注ajax,另外不計(jì)其數(shù)的開源實(shí)現(xiàn)。讓人頭痛。
? ajax in action 把這些框架分了三類。 prototype.js及擴(kuò)展項(xiàng)目,dojo,yui...關(guān)注表現(xiàn)的類庫。dwr,json,buffalo...關(guān)注數(shù)據(jù)傳輸?shù)目蚣埽詈笫莤ul,gwt(我沒有關(guān)注)等。
? 客戶端類庫由javascript語言實(shí)現(xiàn),并且相對(duì)代碼量不大,重構(gòu)容易。javascript語言太容易讓人抄襲,所以除了它們關(guān)注點(diǎn)不一致外,很多功能不是獨(dú)有的。所以從功能上看,都差不多。

? 我覺得應(yīng)該從以下幾個(gè)方面考慮:
? 1 namespace的支持。如果沒有這個(gè)支持,這個(gè)項(xiàng)目不會(huì)發(fā)展很大的。
? 2 經(jīng)過詳細(xì)的測試,大型項(xiàng)目的試用。
? 3 后面有公司的支柱。
? 4 活躍性。
? 5 文檔支持
????
? 我自己現(xiàn)在對(duì)YUI比較看好,dojo官網(wǎng)用讓我對(duì)dojo有些擔(dān)憂。

關(guān)于dwr,json..這類框架的選擇我覺得關(guān)注
? 1 傳輸?shù)氖莤ml json。看你客戶端的選擇了。
? 2 性能
? 3 與服務(wù)器端框架的集成度。如spring,pico,struts,webwork....
? 4 是否容易與你客戶端UI控件容易綁定。
六 學(xué)會(huì)重構(gòu)
? javascript語言更需要 測試 和 重構(gòu) 的工具支持。javascript語言太靈活,代碼太脆弱。
? 可能javascript,ajax設(shè)計(jì)模式相對(duì)成熟后,重構(gòu)會(huì)讓我們更容易些。
七 寫給自己
??? 研究ajax,讓自己陷入泥沼。ajax牽扯到的技術(shù),知識(shí)太多了。太多的框架,太多的新的思想,太讓自己陷入“完美主義”。可能今晚寫的javascript代碼,明天就會(huì)不滿意。自己實(shí)現(xiàn)的框架會(huì)越來越不滿意。觀望,修煉內(nèi)功。
???
?
本來有些想法,可就是表達(dá)不好。郁悶郁悶.....