Friday, January 19, 2007

I have to study generic programming in 2007.


今天美国那边的tech lead终于解决了困扰了我们一个多月的技术难题-suppress the security dialog when open an office document with IE.而且一出手就不同凡响.跟他一起作项目快一年了,就见他写过三次代码,每次都是泛型编程,几乎什么问题到他手上都可以用泛型来解决.可能这就是老外所谓的Thinking in...了--Thinking in generic programming!



工作快两年了,跟了两个美国的tech lead,都挺牛的,第一个,matt,结束不是很多,但是感觉写代码超快,技术难题两下就解决了.第二个David,跟我们一起写的代码基本不多,但是每次写出来的必是泛型的,命名都是一些前缀带下划线,变量都是两三个字母不知含义的那种.打开文件,满眼全是符号,而不是象Java或是C#那种OO感特别强,接近自然语言,即使不太懂编程语言的,看看那些英文单词也能猜个差不多.真不知道他是怎么把泛型练到如此纯熟的,等这个项目release完了一定要请教学习下,有这么好的资源不用真是浪费.



而且老外还有一个特点就是不用IDE,喜欢用command line的方式,可能跟版权有一定的关系吧,估计他们学习的时候很多都是在linux下用一些开源的开发工具的缘故.要搭建个window环境下的编程环境,代价可不小,正版的window+Visual studio.net+Sql Server,可能还需要office,乖乖的,好几千dollar啊,都够大学四年学费了.而我们在地摊上10块钱就配齐了.不过也难怪,公司里一个美国员工的薪水都顶我们中国十个廉价劳动力了的成本了.



自从上个月台湾地震后,AOL就基本登不上去了,后来干脆就不用了.上午刚上班,team lead就让我赶快登AOL,说David要跟我讨论问题.我刚一上线, David就传给我他写的demo,好家伙,全都是generic的,一堆带下划线的不明其义的Parameter,variable,typedefine,macro,看的心里发慌. build 下没通过,提示缺少resource 文件,把错误发给他后,这才知道他写代码根本不用IDE,也不debug, 用Diagnorse的方式输出到output window看结果就行了!而且发给我的IDE版本他根本就没编过,当他把rc文件发过来后一切都OK了,真不知道他是怎么写code的.


编译通过后David就带我简单的看下code.他打字太快了,而且英文也很native,都是一些极其简单的单词,组合在一起后有时就是不知道什么意思,偏偏昨天刚装的系统,powerword也没装好,基本上跟不上他的节奏了,他每敲完四五行,我就用些ok, yes, see, good,got回应一下.主要还是因为泛型用的太活了,看不习惯.


到下午的时候我就一边看聊天记录一边看代码,这才慢慢理解他的话和代码.代码封装的非常好,只需继承最上层的类,调用下Startup()和Cleanup()就行了.他说代码整理过了,只为了make your life easier.正是不虚此言!整个过程可以这样来比喻.一个刚学电脑的菜鸟跟老鸟学习电脑,老鸟打开机箱,然后跟他说这是cpu,做什么什么用的,那是内存,还有那是主板,都是做什么什么用的...菜鸟在一旁听的晕晕呼呼的~完了老鸟说,现在我要睡觉了,你自己研究下然后把它run起来吧.菜鸟研究摆弄了一个下午,最后突然明白,原来挺简单的嘛,只需盖上盖子,按下power就行了啊:)


It really make my life easier!


Thinking in generic programming-I have to study it this year!


No comments: