刚刚看到一篇文章,说是好的程序员生产力是普通程序员的几倍,甚至上百倍。 文章是一个*人写的:http://blog.vgod.tw/2009/12/18/divine-code-10/
对里面关于“工具” 和 “自动化” 的描述,有了一些新的领悟,故记录于此。
公司总是在强调,完成本职工作,只是meet,如果想exceed some 或是 exceed most, 一定要有创新思维或者积极主动的开发一些能够提升效率的工具,或是想想怎么能自动化我们的流程。
我一直不以为然,虽然以前我也写一些工具,但是只是因为当前的工作实在是太耗时,或是太费劲, 在忍无可忍的情况下,才写的工具。例如,以前在本地进行unit test的时候,
因为eBay系统很庞大,initialization需要很长时间,而我又是喜欢在dev的时候频繁的用test做验证的(test driven)的,而每次run unit test,都要忍受长时间的init, 后来我就写了
个TestContainer, 让其只init一次,然后在IDE console中输入test 的 class method 去执行test,就是这个小小的发明,为我个人省了很多时间,当我share给team其他人时,
他们也很appreciate.
但是这个工具开发完全是无意识的,或者说是被逼的。
而看了这篇文章后,我对工具开发有了全新的认识,找到了理论依据:) 最主要心得有以下几点:
Why can we?
1、由于软件开发的特殊性,使得我们在使用工具(软件)的同时,还能创造工具(软件)。其他行业则不行,比如理发师,他可以磨练自己发型设计的技术,却不知道怎样去创造新的剪刀。
When and how?
2、如果在意识到自己已经三番两次手动执行同样的冗长工作时,就应该静下来好好想想是不是有什么办法可以让电脑来做这些事,只要常有这种想法,写这些script和小工具节省下来的时间和自己得到的经验是一辈子都用得上的。