作譯者介紹
作者:Dave Crane Eric Pascarello
譯者:李錕(網名dlee)及ajaxcn.org的成員們。
Dave Crane:英國資深Web開發人員,在智能家居、銀行和金融系統領域應用DHTML和Ajax等客戶端技術擁有豐富的經驗。
Eric Pascarello 資深ASP.NET開發人員,著名Java社區JavaRanch的 HTML與JavaScript版主。
Darren James 是開源Ajax框架的架構師。
李錕(網名dlee):獨立軟件咨詢顧問,有多年軟件開發和軟件項目管理的經驗,在J2EE、Ajax、敏捷軟件開發方法等領域有獨到的見解。
內容提要
本書是目前Ajax領域最為全面深入的一本著作,其中不僅有對于基礎知識的介紹,還有對于Ajax開發中重大的體系架構問題的深入探討,總結了大量 Ajax開發中的設計模式,并討論了框架、安全性與性能等等。書中提供了幾個典型的例子,兼顧各種開發平臺,這些例子的代碼稍作修改就可以直接應用于項目開發之中,代碼源文件可以從圖靈網站下載。
本書內容廣泛且深入,同時適用于各個層次的Web應用開發人員。
前言
有時候,在你發覺之前,命運之神已經降臨多時了。20世紀90年代初期,在我使用的各種有趣的新技術之中,一種稱為JavaScript的小腳本語言剛剛嶄露頭角。我很快意識到,盡管名字叫JavaScript,它其實與我心愛的Java沒有任何關系,但是從此它卻與我結下了不解之緣。
90年代后期,我開始為數字機頂盒技術的早期采用者開發軟件。其中主要軟件部分的用戶界面完全使用JavaScript編寫,我成為一個開發小組的技術負責人,負責使用這種語言編寫窗口管理代碼、調度程序和各種巧妙代碼?!岸嗝瓷衿姘?!”我想,“它總是讓人意想不到?!?BR>
此后,我轉向了要求更高的工作——為會說話的未來智能家居開發企業消息中樞(backbone)和各種用戶界面組件。我是靠Java方面的技能被錄用的,但是很快我又在編寫奇妙的JavaScript用戶界面了。令人驚奇地是,我發現一些人居然鄭重其事地在用這種腳本語言來編寫框架。很快,我使用了 Mike Foster開發的早期版本的x庫(你將在本書偶爾看到它的身影)。一天下午,在開發一個郵件和文本信息論壇時,我有了一個不可思議、令人興奮的想法:在隱藏幀(hidden frame)中檢查新的消息,無需刷新屏幕就可以將消息添加到用戶界面中。經過幾個小時的狂熱編碼,我成功了,甚至解決了如何用顏色來呈現新的消息,使得它們容易被用戶注意到?!岸嘤腥ぐ?!”我想,隨后就又回去編寫那些正經代碼了。我還不知道,在同一時間,Eric Costello、Erik Hatcher、Brent Ashley和其他人正在考慮相同的事情,而微軟也正在為其Outlook Web Aclearcase/" target="_blank" >ccess設計XMLHttpRequest。
命運之神還在緊隨著我的腳步。我的下一個工作可以說是責任重大——為頂級的大型銀行開發軟件。我們混合使用了Java和JavaScript,并且使用了隱藏幀和其他的技巧。我的團隊現在維護著超過1.5M字節的代碼——除了使用由JSP生成的代碼外,全部是靜態的JavaScript。其中還沒有算上圖片資源。我們用它來開發上百個操作員使用的一個應用,這個應用管理著價值數以百萬美元的帳戶。你的銀行帳戶有可能就是使用這個軟件來管理的。
在此期間,我沒有完全意識到,JavaScript已經長大成人了。在2005年2月,Jesse James Garrett提供了完整拼圖中缺失的一塊——他為我們過去幾年偷偷摸摸地私自使用的“跨瀏覽器異步富客戶端動態HTML客戶服務器技術”(cross- browser-asynchronous-rich-client-dynamic-HTML-client-server technology)取了一個簡潔而干脆的名字:Ajax。
正如他們所說的,以后的一切已經載入史冊。Ajax現在正在引起廣泛興趣。Prototype、Rico、Dojo、qooxdoo、Sarissa和許多其他框架的開發者正在編寫大量優秀的代碼??蚣芤呀浂嗟貌豢蓜贁?,但是我們還是決定嘗試一下。在附錄C中,我們列舉了大多數值得關注的框架。生活如此美好,我從來沒有像現在這樣享受計算機工作。
我們遠未大功告成,這個領域還在發展之中。當我在2005年9月對5月撰寫的第一章進行最后修改時,我吃驚地看到這個領域取得的巨大進展。這個主題仍然有很多值得思考的地方,接下來兩年將會令人無比興奮。在寫作本書的旅程中,我非常幸運地有Eric和Darren一路相伴。
我希望你也會與我們同行——而且感到不虛此行!
Dava Crane
譯者序
普遍來說,中國人缺乏匠人的氣質?!敖橙恕边@個詞在中國幾乎是一個貶義詞。例如說:“xx不過只是一個匠人”。但是其實國內的軟件行業正是缺乏一大批對于自己的工作精益求精的軟件工匠,這才是國內軟件行業的主要問題所在。
相比之下,日本人是一個非常有匠人氣質的民族。手藝精湛的匠人自古以來在日本都受到普遍的尊重。在這個方面,我們需要向日本人學習的地方有很多。
自從Pete McBreen所著的Software Craftsmanship(中文版名為《軟件工藝》,人民郵電出版社出版)出版后,“軟件工藝”為軟件行業的從業者帶來了“軟件工程”之外的另一個重要的隱喻。在此之前,“軟件工程” 這個隱喻在軟件行業中一直占據著絕對的話語權。軟件工藝并非是為了徹底顛覆軟件工程,而是為了促使大家將目光更多地投向精研軟件建造過程中的工藝問題。這本書將軟件開發者分成了三個層次:學徒開發者(Apprentice Developer)、技師開發者(Journeymen Developer)和軟件工匠(Craftsman)。
Ajax in Action的作者無疑已經達到了軟件工匠的層次,本書充分體現出了他們的技術水平。我將本書評價為大匠的杰作。時間將可以證明,本書在Ajax技術著作的殿堂中,會像米開朗基羅的大衛那樣成為不朽之作。這本書就像大衛那樣充滿了美感,其架構的復雜、計算的精確令人敬畏,堪稱是工藝學和藝術的完美結合。
想要開山立派,必須高屋建瓴。達摩祖師、張三豐無不是這樣的人物。本書作為Ajax技術領域的開山之作,同樣也達到了這樣的高度。雖然它是Ajax領域的第一本著作,但是它所達到的高度至今仍然是同類著作難以企及的。
某個技術領域的第一本著作往往并不是該領域中最好的著作,例如,大量的開發實踐已經證明早年那些介紹J2EE開發的書價值是有限的,直到Rod Johnson寫出了經典的J2EE without EJB,對于EJB的盲目推崇才宣告結束。到目前為止,與Ajax技術相關的著作在國外已經出版了10本以上,國內也在今年開始陸續出版大量相關的著作,包括翻譯和原創。然而,我們非常驚訝地發現,本書目前仍然是這個領域最為全面和深入的一本書。其中不僅包含了耐心細致介紹的基礎知識以及精心設計的實戰例子,更重要的是,還涵蓋了對Ajax開發中重大的體系架構問題的深入探討,并且總結出了大量Ajax開發設計模式,因此,認為本書是一本講體系架構和設計模式的書是毫不過分的。
Ajax領域的新框架和組件庫層出不窮,一些功能非常簡單,一些則是過度的設計或者存在著嚴重的設計問題。Ajax開發者對于應該選擇什么樣的框架感到茫然無助,毫無疑問,Ajax in Action可以幫助你。本書是目前已經出版的唯一一本深入探討Ajax開發中的架構問題的著作,這使得它顯得卓而不群。如果不去深入研究Ajax開發中的架構問題,Ajax開發領域將會再現J2EE開發領域早年的那種混亂局面,本書將會使得Ajax開發秩序井然。我們需要的不完全是技術本身,還需要思考和選擇的眼光。Ajax in Action正是能夠帶給讀者選擇的眼光的著作。它使讀者能夠全方位地理解Ajax開發,不僅僅是看到眾多的樹木,更重要地是看到整片的森林。架構設計的合理性和靈活性將是選擇Ajax框架的一個首要因素,將能決定任何Ajax框架未來的命運。一年之后,存在架構設計問題的很多框架都將會退出歷史舞臺。
盡管如此,作者并不是只討論重大的架構問題,而忽略了具體的實現細節,這樣往往會流于空泛。作者不僅僅是卓越的評論家,更是卓越的實干家。對于書中介紹的每一個架構和模式都給出了精心設計的例子。對于Ajax開發需要的所有基礎知識,作者都通過例子做了耐心細致的講解。書中花費了一半的篇幅闡述了大量 Ajax開發的實例,展示了Ajax開發的方方面面。每一個實例中的代碼最后都被重構為一個可以重用的組件,這些組件的不需要做任何修改,或者只需要稍作修改就可以直接應用在讀者的項目開發之中,幫助用戶得到更好的交互體驗。
在本書中,有令人高山仰止的體系架構和設計模式的分析,有潺潺流水式的深入細致的實例講解。娓娓道來,帶給讀者100%一對一的閱讀體驗,雖然討論的內容很多,但是達到了形散神不散的效果,這個神就是改善Web應用的可用性,可以說,本書中所有關注的問題都是與改善Web應用的可用性相關的。這正是 Ajax技術誕生的使命,也應該是任何一個Ajax開發者需要牢記的。Ajax開發并不是一個純粹的技術問題,因為這里還涉及到另一個重要的利益相關人,就是最終用戶。我們始終要把最終用戶的感受放在首要位置,才能開發出出色的Ajax應用。
這本書因為其內容的廣泛和深入,同時適合于Ajax開發的初學者和提高者,兩種類型的開發者都能從中得到巨大的收獲。對于Ajax開發者來說,本書可以作為案頭常備的著作。作者就像是一位吹著笛子的魔法師,循序漸進、深入淺出地將讀者領進了Ajax這個迷人的殿堂。本書堪稱是一片富饒的寶藏,等待著你—— 勇敢的探險家去探索和發現。
李錕
2006年4月4日于上海
試讀感受
cleverpig第一手拿到了《ajax實戰》試讀版本,在閱讀部分章節后為翻譯者的無私努力感到敬畏和佩服。由于該書原文作者都屬于“第一線實戰家”,并非像侯捷那樣有潑墨如雪的文學功底,所以原文中多處使用俚語——cleverpig在閱讀原文電子版時就感受頗多。
而觀《ajax實戰》后,感覺文章雖然不能到行云流水的地步,但也字句通暢、文切意達。從章節的劃分開,前幾章為ajax初學者的向導,但是其中滲透了“模式化設計”的思路頗深;中間部分為核心技術說明,后面幾章為目前流行技術探討。
篇幅詳略得當,適合初學者和ajax技術一線開發者。
原文轉自:http://www.anti-gravitydesign.com