原文網址: http://weibo.com/1560442584/eBP3YXO0OOi#a_comment
Wuvist:以物件導向的方式去做案頭APP,完全沒有問題;但web環境下,BS是分離的,HTTP是無狀態的短連結,必須要有ViewState這樣的玩意去偽裝;而它們必然造成效能低下;再加上Law of Leaky Abstractions,這些使得webform造成很多不必要的問題。到頭來還不如直接去手寫HTML。(今天 15:09)
趙姐夫:誰說有ViewState必然造成效能低下的啊,亂用當然效能低下了。(今天 15:14)
Wuvist:開ViewState,頁面至少多幾個字元,對效能就是有影響;而對於高流量網站,這種少幾個字元的最佳化也是很現實的考量;但這點不重要,咱無需糾結字眼;關鍵在於webform的抽象非常"leaky"。(今天 15:24)
Wuvist:http://t.cn/htDPPb 一年十萬;舉個簡單例子,無法快速響應使用者的滑鼠操作,比方說,滾動/快速點擊;這些必須在用戶端直接寫javascript才可以實現快速的體驗;點個button,背景換個顏色,用伺服器端callback函數去做,會慢死;這就是leak。(今天 15:34)
趙姐夫:taobao這樣流量的網站,去年QCon分享時說了,這方面最佳化好以後,大概一年省了幾百塊,嗯嗯。至於非常leaky,期待詳談。(今天 15:26)
Wuvist:OO的設計模型不是問題;問題在於非常leaky的OO抽象。回過去頭去看ExtJ的OO抽象,它是純用戶端的,不需要跨越BS的鴻溝,效果就好很多。頻寬有限,用webform的抽象帶來的效能問題太杯具,因而產生了無數“正確使用webform”的知識經驗。何苦呢?(59分鐘前)
趙姐夫:我也用WebForm寫過n多程式了,從不覺得有什麼效能問題是WebForm引起的。事實上叫的最響的人是要麼不用要麼不懂的人。至於Best Practice,好像MVC啊,PHP,Rails都沒有一樣……(51分鐘前)
趙姐夫:兩個是一回事情嗎?再看看清楚文章吧。我看出來了,你說WebForm不好,是因為它沒有解決所有問題,但它從來沒說自己解決了所有問題。本來用WebForm就沒說就不能或是不該用JS了,用JS配合WebForm怎麼就變成噁心的事情了。(48分鐘前)
Wuvist:文章我想我看得很清楚,這方面我想我們理解是一致的,就不扯了;js配合webform確實很噁心,能用好js,對HTML低層有瞭解;webform能解決的問題,不用它也可以解決得很好;為什麼要用它呢?為什麼要投入時間去學專門解決webform問題的best practice呢?(37分鐘前)
趙姐夫:我沒學過專門為瞭解決webform問題的best practice,我只是瞭解HTML,JS,然後用WebForm加快我的開發效率而已。(28分鐘前)
Wuvist:這是您的個案,而且是否enable viewstat,這算是webform特有的問題嗎?大多數人走的是webform => html/js的彎路,webform誕生之初的目的,就在於把html/js抽象掉,讓desktop developer以desktop的方式去搞web,造就無數杯具,這點,我又是否說錯呢?(22分鐘前)
趙姐夫:錯了,我從沒覺得WebForms是為了擺脫HTML,JS。不知道誰把這要求加到WebForm身上的,然後從一個理想主義者掉到一個虛無主義者而已。至於enable viewstate,哪個類庫架構沒個這種配置的?(18分鐘前)
Wuvist: http://t.cn/aKAHN1 A rich set of server-side controls that can detect the browser and send out appropriate markup language such as HTML(14分鐘前)
趙姐夫:所以你的理解是,WebForm的目的是完全擺脫HTML和JS?好吧,你和我的理解的確是完全不同的。(12分鐘前)
Wuvist:那您是怎麼理解微軟在01年說的這六點“The Purpose of Web Forms”呢?(6分鐘前)
趙姐夫:提出一種提高開發效率的模型啊。(4分鐘前)
Wuvist:我覺得我們剛剛這串討論蠻有意思的,我整理髮成blog可好?(5分鐘前)
趙姐夫:我沒有意見,呵呵。(4分鐘前)