posts - 176, comments - 240, trackbacks - 0, articles - 7

          [導入]既先進又落后的web開發領域

          Posted on 2006-02-22 20:39 canonical 閱讀(1857) 評論(1)  編輯  收藏 所屬分類: 設計理論

              web開發這個領域是很有意思的。首先,web的興起是在軟件業發展到一定階段才發生的,它必然吸收了軟件業最優良的思想,必然有其本質上先進的地方。另 一方面,web的應用畢竟是時日較短的事情,造成很多基礎架構方面也是薄弱的,原始的。
              具體來說,前臺html的展現模型本身是非常先進的。xhtml+css+js實現了結構(structure), 表現(presentation)和行為(behavior)的分離。xhtml本身是簡單的文本文件,通過工具的支持可以做到結構上的"所見即所得" (WYSIWYG)。 在js中操縱html結構具有多種方式:可以通過id直接訪問html片斷,可以直接操縱dom的層次結構,可以將html作為線性文本處理,可以應用 xml相關的技術對dom結構進行變換,可以動態切換html元素的css風格等。dom結構的訪問方式是高度統一的,通過parentNode, childNodes, setAttribute, getAttribute等少數幾個 API函數,我們可以通過一種簡潔一致的方式操縱所有的節點和相關屬性(當然,IE這方面的bug不少)。html相關技術中所顯示的結構控制能力遠遠超 越了傳統桌面程序中組件技術所能達到的程度。
              但另一方面,html也是原始的,缺乏現代應用程序所必需的標準控件,典型的如Tree控件和Tab控件等。每個開發商都不得不實現并維護自己的界面庫。 通過web界面調用后臺業務邏輯的方式更是很粗糙的。基礎的servlet只提供了基于IO的有限狀態機模型,對于后臺功能缺乏有效的組織,而對于前臺界 面也缺乏合適的抽象手段,僅僅作為文本輸出。MVC框架建筑在servlet模型之上,將后臺邏輯功能以一種統一的組織方式向外暴露。而tag技術在前臺 界面中的應用,使得我們可以有效的識別并分離出我們所關心的結構。這些技術的發展都是web開發模型逐漸精細化的必然結果。
              為了在服務器端獲得足夠強的結構控制能力,有些人求助于桌面程序的歷史開發經驗,希望通過java語言中的結構表達能力來擴展web開發的模型,于是便有 了echo2, tapestry這樣的組件化web開發框架。坦率的說,我并不看好這類強類型建模的框架。除了性能上的原因之外,我反對這類框架的一個主要原因是 java語言直接表達的結構一般無法達到用xml文本表達的結構的統一性和靈活性,從而很難應對界面的快速變化。實際上,對web界面進行組件化的分解并 不一定需要一種強類型語言支持的組件模型。通過自定義標簽的使用,我們完全可以實現將頁面分解為多個子部分的目的,這一點已經由witrix平臺中的 tpl模板技術所證實。

              web開發是個既先進又落后的領域。很多人面對這種矛盾的情況,難免思想上會出現混亂。關鍵是要認清技術的本質而不要被OO是否必需等抽象的討論所迷惑。

          Feedback

          # re: [導入]既先進又落后的web開發領域  回復  更多評論   

          2006-05-29 15:42 by 老鼠
          呵呵,受教:):)
          主站蜘蛛池模板: 昭苏县| 大洼县| 宁乡县| 长武县| 焦作市| 蕉岭县| 定襄县| 扬中市| 沂水县| 水城县| 吴川市| 安仁县| 景德镇市| 若尔盖县| 维西| 苍梧县| 扬州市| 清镇市| 梨树县| 泸定县| 巴彦淖尔市| 华池县| 高唐县| 长阳| 太湖县| 日喀则市| 宽城| 靖安县| 雅安市| 彝良县| 高台县| 安塞县| 阜平县| 土默特右旗| 安阳县| 建阳市| 南投市| 福泉市| 蓬溪县| 齐齐哈尔市| 东至县|