建立國(guó)内Web前端開發的(de)生态系統
發表時(shí)間:2007-3-31
發布人(rén):融晨科技
浏覽次數:40
後來(lái)我發現這(zhè)個(gè)平台也(yě)存在(zài)着一些自己的(de)缺陷,但是(shì)在(zài)當時(shí)爲(wéi / wèi)我帶來(lái)了(le/liǎo)一種全新的(de)設計思路,我當時(shí)對于(yú)完全基于(yú)Java的(de)Web表現層開發技術感到(dào)失望(當時(shí)主 要(yào / yāo)是(shì)JSP和(hé / huò)Struts,Turbine、Cocoon等框架并沒有流行起來(lái))。結合JavaScript、XMLHTTP和(hé / huò)Servlet來(lái)建造一個(gè) 快速開發平台,這(zhè)确實是(shì)一種嶄新的(de)設計思路。以(yǐ)這(zhè)種思路來(lái)做開發,要(yào / yāo)比使用Struts一類框架簡便很多。當時(shí)賴毅已經有了(le/liǎo)一整套的(de)架構設計思想(涵蓋客 戶端和(hé / huò)服務器端),而(ér)Ajax這(zhè)個(gè)術語直到(dào)2005年才出(chū)現,賴毅可以(yǐ)說(shuō)是(shì)超前了(le/liǎo)時(shí)代兩年以(yǐ)上(shàng)。而(ér)且在(zài)這(zhè)個(gè)平台中,因爲(wéi / wèi)我們主要(yào / yāo)是(shì)在(zài)浏覽器端做事情,可以(yǐ) 充分利用浏覽器端的(de)所有資源,開發出(chū)一些讓用戶使用起來(lái)非常簡便的(de)組件。最典型的(de)就(jiù)是(shì)不(bù)刷新頁面更新數據、輸入提示和(hé / huò)自動補全,這(zhè)在(zài)和(hé / huò)爲(wéi / wèi)中間件平台中是(shì)非 常基本的(de)功能。和(hé / huò)爲(wéi / wèi)中間件平台還實現了(le/liǎo)複雜的(de)DataGrid組件(我們叫做Workbench),允許用戶以(yǐ)類似Excel的(de)方式,直接在(zài)表格中進行添加、編輯、删除等操作。
在(zài)這(zhè)個(gè)時(shí)候,我意識到(dào)了(le/liǎo)XMLHTTP是(shì)一種非常有價值的(de)技術,并且對JavaScript重新産生了(le/liǎo)濃厚的(de)興趣。我花了(le/liǎo)很多時(shí)間讀完了(le/liǎo)中國(guó)Linux論壇贈送給我的(de)《JavaScript權威指南》。并且花了(le/liǎo)很多時(shí)間學習 Mozilla的(de)JavaScript,當時(shí)沒有很多文檔,主要(yào / yāo)是(shì)看Mozilla的(de)newsgroup。其實我在(zài)2001年就(jiù)做過一些DHTML開發, 但是(shì)當時(shí)是(shì)基于(yú)IE4和(hé / huò)Netscape4,需要(yào / yāo)寫兩套完全不(bù)同的(de)代碼,這(zhè)些經驗已經沒有多大(dà)價值,而(ér)且當時(shí)我也(yě)沒有深入學習過JavaScript。我 對Web前端技術開發真正重視起來(lái)是(shì)在(zài)到(dào)了(le/liǎo)和(hé / huò)爲(wéi / wèi)公司之(zhī)後的(de)事情了(le/liǎo)。
2001年我做Web開發使用的(de)是(shì)ColdFusion,在(zài)當時(shí)幾種Web開發技術ASP、PHP、JSP、ColdFusion中, ColdFusion的(de)開發效率是(shì)最高的(de)。但是(shì)ColdFusion是(shì)商業産品,在(zài)國(guó)内的(de)用戶很少。ColdFusion全部使用自定義的(de)tag來(lái)做開發,JSP開始支持自定義tag,并且在(zài)JSTL推出(chū)之(zhī)後建議完全基于(yú)JSTL,而(ér)不(bù)是(shì)scriptlet做開發,這(zhè)些在(zài)我看來(lái)就(jiù)是(shì)對ColdFusion的(de)拙劣模仿。使用ColdFusion做開發的(de)愉快感覺到(dào)了(le/liǎo)使用JSP就(jiù)不(bù)存在(zài)了(le/liǎo),Struts的(de)笨拙也(yě)沒有引起我很多的(de)好感。
我基于(yú)和(hé / huò)爲(wéi / wèi)中間件平台做了(le/liǎo)一些開發後,積累了(le/liǎo)一點心得體會,在(zài)JavaEye論壇2004年3月首次聚會上(shàng),我做了(le/liǎo)一個(gè)關于(yú)XMLHTTP的(de)演講。當時(shí)的(de) Java開發人(rén)員用過XMLHTTP的(de)比較少,所以(yǐ)顯得有些另類。但是(shì)另一位演講人(rén)曹曉鋼(現在(zài)很多人(rén)稱他(tā)爲(wéi / wèi)曹老師)以(yǐ)前也(yě)用過不(bù)少XMLHTTP,所以(yǐ)一下子(zǐ)就(jiù)理解了(le/liǎo)我們的(de)設計思路。其後的(de)一段時(shí)間,我在(zài)JavaEye論壇上(shàng)與一些網友圍繞基于(yú)XMLHTTP的(de)設計和(hé / huò)具體的(de)技術問題開展了(le/liǎo)很多有益的(de)讨 論。JavaEye論壇可以(yǐ)說(shuō)是(shì)當時(shí)這(zhè)類讨論最爲(wéi / wèi)集中和(hé / huò)深入的(de)地(dì / de)方。
到(dào)了(le/liǎo)2005年2月以(yǐ)後,國(guó)外傳來(lái)了(le/liǎo)一個(gè)新的(de)技術術語——Ajax,我在(zài)閱讀了(le/liǎo)定義這(zhè)個(gè)技術的(de)那篇著名的(de)文章之(zhī)後确認,我們過去兩年來(lái)做開發所基于(yú)的(de)技術就(jiù)是(shì)Ajax。當時(shí)我已經讀完了(le/liǎo)《網站重構》,并且朋友趙澤欣(醒來(lái))的(de)介紹下理解了(le/liǎo)Unobtrusive JavaScript的(de)含義。我決心以(yǐ)後的(de)Web前端開發一定要(yào / yāo)基于(yú)真正的(de)Web标準來(lái)做開發,這(zhè)樣我們才能夠獲得最大(dà)的(de)利益。
Ajax在(zài)國(guó)外能夠火起來(lái),并不(bù)是(shì)偶然的(de)。國(guó)外的(de)開發團隊其實對于(yú)Web前端開發相當重視,JavaScript和(hé / huò)DHTML開發高手在(zài)國(guó)外有着很好的(de)待遇,他(tā)們在(zài)這(zhè)些方面的(de)開發上(shàng)有着多年的(de)積累。然而(ér)在(zài)國(guó)内,真正精通JavaScript和(hé / huò)DHTML的(de)人(rén)鳳毛麟角,我所知道(dào)的(de)就(jiù)隻有設計開發Buffalo的(de)陳金 洲和(hé / huò)設計開發jsvm的(de)萬常華等屈指可數的(de)幾個(gè)人(rén)(當然也(yě)是(shì)因爲(wéi / wèi)我孤陋寡聞)。而(ér)且也(yě)缺乏深層次的(de)交流,大(dà)多都是(shì)閉門造車。有名的(de)51js網站的(de)主要(yào / yāo)作用 是(shì)下載一些質量參差不(bù)齊的(de)代碼,而(ér)且那裏幾乎沒有人(rén)關心所謂的(de)Web标準爲(wéi / wèi)何物。
這(zhè)在(zài)很大(dà)原因上(shàng)是(shì)由于(yú)國(guó)内的(de)大(dà)多數Web開發團隊過于(yú)熱衷于(yú)跟從軟件大(dà)廠(M$、Sun、etc.)的(de)技術,不(bù)敢自己做嘗試,另外也(yě)是(shì)由于(yú)國(guó)内缺乏高水平的(de)Web前端開 發圖書。雖然介紹HTML/XHTML和(hé / huò)JavaScript的(de)書并不(bù)少,但是(shì)都不(bù)夠綜合,無法反應出(chū)Web前端開發技術的(de)全貌。而(ér)且不(bù)涉及到(dào)Web Remoting(XMLHttpRequest是(shì)其中一種技術),最多隻能是(shì)些小打小鬧,無法做什麽大(dà)事。
Ajax技術的(de)興起促進了(le/liǎo)各個(gè)方面對于(yú)Web前端開發技術的(de)重視。在(zài)國(guó)内的(de)出(chū)版單位中,得風氣之(zhī)先的(de)是(shì)圖靈公司。當時(shí)我聽說(shuō)國(guó)外出(chū)版了(le/liǎo)一本書叫做Ajax in Action,我一直想翻譯這(zhè)本書。2005年10月的(de)一天,在(zài)朋友的(de)介紹下,圖靈公司的(de)主編劉江找到(dào)我,說(shuō)在(zài)找這(zhè)本書的(de)譯者。我們一拍即合,确定了(le/liǎo)翻譯這(zhè)本書的(de)計劃。
Ajax in Action這(zhè)本書很厚,内容很深,翻譯工作量非常大(dà),我們采用集體合作的(de)方式,由7位譯者完成初稿,最後由我來(lái)校對和(hé / huò)潤色。終于(yú)在(zài)2006年4月的(de)前兩天完成了(le/liǎo)全部的(de)翻譯任務。圖靈公司隻用了(le/liǎo)不(bù)到(dào)一個(gè)月的(de)時(shí)間就(jiù)将這(zhè)本書送到(dào)了(le/liǎo)讀者的(de)手中,效率奇快,但是(shì)這(zhè)本書的(de)制作質量還是(shì)很高的(de)。
在(zài)2006 年下半年,我和(hé / huò)趙澤欣等人(rén)又爲(wéi / wèi)博文視點公司翻譯了(le/liǎo)《Ajax模式與最佳實踐》,并且在(zài)2007年1月,将台灣翻譯的(de)《Ajax設計模式》改寫爲(wéi / wèi)大(dà)陸版本。 這(zhè)兩本書今年4月都将正式出(chū)版。到(dào)了(le/liǎo)現在(zài),國(guó)外Ajax領域的(de)三本重量級的(de)著作都已經引進到(dào)了(le/liǎo)國(guó)内,并且圖靈公司和(hé / huò)博文視點公司在(zài)今年之(zhī)内還将出(chū)版一大(dà)批 Web前端開發的(de)圖書,涵蓋XHTML、CSS、JavaScript、Ajax等各個(gè)領域。今年之(zhī)内Web前端開發圖書将會極大(dà)豐富,足以(yǐ)滿足國(guó)内 Web前端開發者的(de)各種需要(yào / yāo)。趙澤欣目前正在(zài)負責爲(wéi / wèi)圖靈公司翻譯ppk>某一種技術的(de)興起,出(chū)版界的(de)關注是(shì)必不(bù)可少的(de),除此之(zhī)外,建立一個(gè)自由深入交流相關技術的(de)社區也(yě)是(shì)非常重要(yào / yāo)的(de)。各方面共同努力,才有可能建立起一個(gè)繁榮的(de)生 态系統。2005年11月,在(zài)劉江的(de)建議下,我創建了(le/liǎo)Ajax中國(guó)這(zhè)個(gè)網站,邀請趙澤欣擔任管理員。并且在(zài)2006年,我們協助圖靈公司,和(hé / huò)China- Pub等單位合作,舉辦了(le/liǎo)一屆國(guó)内的(de)Ajax開發大(dà)賽。
昨天我在(zài)JavaEye論壇上(shàng)看到(dào),在(zài)美國(guó),目前對于(yú)Ajax開發人(rén)員的(de)需求呈現迅速上(shàng)升的(de)趨勢:
http://www.javaeye.com/topic/66495
相信在(zài)國(guó)内,對于(yú)Ajax開發人(rén)員的(de)需求也(yě)會有相同的(de)趨勢。