瘦子與胖子的故事
——WEB程式員的編程環境與任務
馮驥才曾經譯過一篇故事,曰一城有一對朋友。一個胖得出奇,一個瘦得驚人。一開始胖子走俏。人曰胖子塊頭足,身壯力不虧,顯男人氣。一時間人皆趨胖,鼓腮挺肚、假裝胖子不乏其人;某日胖子找老友瘦子。見瘦子依舊細骨伶仃,便說:“現人人學我,你何不學?” 瘦子淡淡一笑:“等爾過勁,即到吾。”
過年有新說:人胖,發喘,出汗,行動不便,脂肪多,易患血管病,有百害而無一利。瘦子搖身變成“當代人最佳體重”,“最符合時代要求的體重”,“典型形象”云云。這日兩友相遇。胖子感慨:“早聽你言,提早變瘦,如今一下難瘦下去爾!” 瘦子聽後搖頭:“非也!不知何日又興胖子!”
■ WEB系統工作原理 - 叫外賣
“Hello 來必宰,給我一份白骨精套餐,地址是東新路123號”,老燕對著電話嚷嚷一通,1分鐘後所要的東西出現在電腦螢幕,“OK,您老慢吃!”,昏倒……
如果用戶端請求的是HTML,那整個過程就非常簡單,來必宰要作的事就是將現菜直接打包原樣發送回客戶。“靜”指的是伺服器在接到請求後不對頁面內容進行加工。
如果客戶請求的是動態網頁面( PHP / ASP / ASP.NET / JSP),來必宰接收客戶的請求及資料後,按指定流程臨時產生HTML頁面,並將此發送回用戶端。
前兩天在新浪科技看到一文,橫加指責DELL銷售模式存在問題,而大肆鼓吹聯*科學地將傳統模式與直接模式結合,大有世界IT巨人之風彩云云,一想當初該品牌主板上的電容在我和朋友眼前炸成兩段的情境,一陣陣泛嘔。DELL接到定單後生產的“零庫存”模式自有其出彩之處(中國的終端銷售商不爽),聯*的傳統銷售網路也一樣支撐著自身一步步壯大。要是這個世界都一個樣,那乏味得很!但世界永遠不會一個樣,老馬很早告訴過我們。
■ WEB程式員 - 十項全能運動員
“最終,我們認識到,一個效能良好的、互動式高效web應用程式就是動態伺服器端代碼和用戶端代碼、以及靜態內容的混合體。”
此要求正是WEB程式員的苦衷所在,要有美術功底,又要熟悉靜態語言(HTML)和用戶端指令碼語言(javascript,Java applet等),又要熟悉伺服器端語言(Java、C#等),當然資料庫更是必不可少了,唉,跑跳投,一樣不能少。當然會有人說可以進行團隊合作,哈,哈哈,中國有幾個老闆肯花錢養這麼多人呀,可憐的人,包括我。
用戶端程式主要的目的是讓瀏覽器響應部份介面操作,並可代為向伺服器請求資料,其作用在於減輕網路流量和伺服器端壓力,但很遺憾的是,有些不法分子在黑暗中大搞破壞,不知覺地在你的機器上種下罪惡的種子,有如372*,所以有部份使用者是如此討厭用戶端程式,居然禁用!
伺服器端程式是根據使用者請求,提取資料,產生HTML頁面,當然,也可以產生用戶端程式(早期時我總為VBScript與javascript之間的資料交換髮愁),發送給用戶端。
胖子和瘦子是分散式運算永恒的話題,合理安排用戶端和伺服器端的功能分配是系統效能優良的重要保證。B / S的優點是無需操心用戶端;C / S的優點在於強大的介面互動表達能力;RIA(Rich Internet Application)融合這兩種結構優點的一種技術,在用戶端一次性安裝一個通用解譯器之後即獲得強大的介面互動表達能力和無需部署具體用戶端的方便性。例如微軟的SmartClient,Avalon、Macromedia的Flex;以JS為基礎的Bindows;Ajax等等很多。用戶端程式就似本文開頭之潮流,今兒流行瘦子,明兒流行胖子 。
在傳統ASP代碼檔案中,程式員要熟練地運用三種語言來完成工作,用DW時我快成色弱,花花草草的。因此高喊頁面與代碼分離就不足為奇,於是網路上出現了N種頁面代碼分離方法,於是DotNET在新出時一重大賣點是真正實現該功能,於是,大家就認為DotNET真是好先進呀,於是,國內的每一本DotNet教材開篇第一句話就是,先進,技術飛躍……看起來真象MS的托。
■ ASP.NET應用程式構架 - 掀起你的蓋頭來
終於,DotNET出現了,看起來有一些變化,我發現最主要的變化是,它的副檔名從.asp變成的.aspx,哈……