wuvist

扯一下抽象

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

posted on 2011-06-09 18:31  问天  阅读(312)  评论(0编辑  收藏  举报

导航