Web 應用開發世界的烏托邦 - 徹底分層切割的 Web 架構設計?


為什麼我們還要在HTML 裏面嵌入伺服器端的程式碼?這真的是個值得思考的問題,而我真正想說的其實是:「將 HTML 徹底從伺服器端的程式碼抽離出,Web 應用程式的開發才能真正達到隨心所欲的境界 」。

現代軟體所要處理的任務愈來愈複雜,也因此也愈來愈龐大,這導致開發人員必須透過分工來建立軟體產品,不過分工愈細,代表牽涉的技術愈多,這在實作上是必然的結果,但是對於進入軟體這一行的入門開發人員卻是很大的挑戰,也因此,技術供應商(例如微軟)便想盡辦法降低學習門檻,將原本應該分開的東西整合起來,如此一來大幅降低開發人員的挫折感,讓軟體的學習與開發變得比較不是那麼困難。

早年當人們發現網際網路的好處,開始發展相關的Web 應用之際,陽春的HTML 網頁這種給視覺設計人員使用的技術根本不符開發人員的需要,因此後來發展出了JavaScript 等程式語言讓網頁有了生命,但是問題來了,HTTP只處理資料的傳送而不負責記錄資料運算過程的狀態,開發人員一方面要處理伺服器的程式碼,一方面又要管理HTML 搭配JavaScript 與伺服端程式的溝通,這讓整個Web 應用的開發成本高得嚇人,於是ASP(或是PHP)伺服端技術孕育而生,HTML內嵌程式碼的技術大受歡迎,網頁應用在後來的幾年呈現爆炸性的發展。

HTML 與後端程式本來就是不同屬性的東西,整個結合在一起就是一整個不協調,而且開發人員還是得處理不擅長的HTML ,微軟看到了這個問題,乾脆將 HTML 端整個作掉,發展出WebForm 與伺服器控制項技術,讓開發人員徹底的完全透過C#(VB)這一類的伺服器技術發展網頁。

伺服器控制項何其好用,推出之後果然技驚四座,開發人員莫不趨之若騖,風光個幾年,漸漸的,人們對網路服務的需求愈來愈高,網頁需要的功能愈來愈複雜,WebForm很快的遇到了瓶頸,很多網頁端的東西還是被切割出來處理,包含美工設計、細緻的互動性操作等等,於是多年之後 MVC 出現了,WebForm 技術再度被整個推翻掉了。

Flash 、Silverlight 等技術所展現出的 RIA 願景,讓世人意識到網頁的控制權必須徹底的從伺服器端抽離出來,也因此純粹的HTML 技術愈來愈重要,到目前為止,HTML 本身甚至連呈現的部份都可以完全交給了CSS 負責,邏輯控制的部份則交由JavaScript 處理,那如果是這樣的話,為什麼我們還要在HTML 裏面嵌入伺服器端的程式碼?既然伺服器端的部份,連對底層資料庫的存取都已經切割出獨立的資料層,本身就已經完全獨立的網頁為何還要與伺服器端的邏輯層有任何關聯?

這真的是個值得思考的問題,而我真正想說的其實是:「將 HTML 徹底從伺服器端的程式碼抽離出,Web 應用程式的開發才能真正達到隨心所欲的境界 」。

:)