wuvist

2011年6月9日

扯一下抽象

技术人员在选择技术方向投入时,看清楚一种技术能够取得的成长非常重要。

====== 使用抽象 ======
微软的技术中有很多好东西,但是它也有大量为了吸引初级程序员而推出的技术,这类技术的本质就是做高层次封装,让特定场景的开发变得极其“简单”/“快速”。

学习类似这样技术的时候,必须保持清醒,明确了解这些技术实际上仅是在做“抽象”/“封装”,把更多注意力放在它们如何做封装的,封装背后的真正技术是什么上。

如果仅仅是去了解怎么用这些封装,用来“搞定”项目就算数,以这样的态度做技术,则很难会有进步;也特别容易被淘汰。因为学习的,仅仅是别人封装(而且是很高层次的封装)过的东西;而封装的方式时刻都在变,这也就是所谓的“技术更新很快”。

WebForm / WinForm / AJAX.Net等都是如此。在学使用别人封装过的东西时,如果没有学到一些相对“本质”的东西,“知识”的有效性/价值是非常低的。

做技术,需要掌握的是更加“本质”的东西,修炼“内力”;在摆好招式,耍好眼前的刀的**前提**下。

====== 提供抽象 ======

而具体在开发上,我们一直需要面临的是如何做“重构”,做封装,做抽象。

小到一个功能,一个函数,要做怎样的封装,要保留怎样的接口;都是可以琢磨的。

怎么琢磨,怎么做才更好?就我个人的经验,不是在做之前去做深入思考;而是快速的去实现一个感觉可行的版本,然后根据实践结果,做反复/多次的修改。

快速的实现,反复的修改。

一个底层库要怎么设计,先根据现在的能力出一个版本,让大家去用,让自己去用,根据反馈,根据自身体验,**持续**的出新版本。

这里最重要的是后者,持续的改进;如果快速实现了一个烂烂的版本,不再改进,那还不如不要实现。

反复的根据回馈精益求精的做修改,不能“一次搞定”,表面上看很浪费时间,但却是学习提高的最快方式。

更加准确的说,是技术人员在实际工作中提高的最快方式;如果是学生,慢慢的去看书,读大师的著作,那是理想。

posted @ 2011-06-09 18:31 问天 阅读(53) 评论(0) 编辑

跟赵姐夫扯 webform的设计

原文网址: 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分钟前)

posted @ 2011-06-09 16:52 问天 阅读(267) 评论(2) 编辑

<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

公告

昵称:问天
园龄:7年5个月
粉丝:13
关注:0

搜索

 
 

常用链接

我的标签

随笔档案

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜