上一个帖子聊了“善用工具”的话题,讲的都是如何有效利用工具来提高效率,今天说一下如何利用“自动化”来提高效率。
隐约记得Perl语言的创始人Larry Wall曾经评价过程序员的三大美德,分别是:懒惰、急躁、傲慢。(刚才找到原文在
这里)在这三大美德中,“懒惰”赫然排在第一,可见其重要(另外,马云似乎也说过类似的名言)。我对他说的“懒惰”的理解,就是干尽量少的活,但是依然保质保量地完成工作。那么,如何才能偷懒捏?一个有效的办法就是:自动化。
我这里说的“自动化”,当然不是大学里自动化专业的那个“自动化”,而是指:利用各种方式(主要是计算机)来帮你
自动完成某些(枯燥、费时、无价值)的重复劳动;然后你就可以利用节省出来的时间,干一些更有意义的事情了(比如学习点有用的东西)。
具体该如何做呢?要实现自动化,首先就要观察你平时做的事情中,有哪些属于
重复劳动;然后评估一下这些重复劳动是否可以用某些工具来替代;如果有可能替代,你就可以动手把这个工具实现出来,然后就可以让工具来帮你做事情了。
说了这么多,感觉有些抽象,下面我举几个方面的例子来给大伙儿加深一下印象。
★Blog订阅
如果你经常看我的Blog,但是没有使用Feed订阅工具,那你就要当心了。你属于不善于利用自动化的人。假如使用了Feed订阅工具,你就不需要经常访问某个URL的页面去看有没有新帖子。因为这个枯燥的重复劳动已经由订阅工具帮你自动完成了。你所要做的,仅仅是在订阅工具中初始化某个URL(只要做一次),然后工具会在有新帖子的时候通知你。所以,除非你要发评论,否则不需要访问我Blog的页面
:-)
★调试程序
估计看我Blog的人,大部分都有过调试程序的经验。当程序行为不正常时,经常需要设置断点,然后单步跟踪代码,以便找出程序出错的源头。其实这个过程也有大量的重复劳动。
我一般喜欢通过程序断言(以下简称assert)来简化上述过程。看到这里,有些同学心里犯嘀咕了:程序断言和自动化有什么关系啊?其实每一个assert就好比一个
自动的代码检查点,
每次程序运行到assert处的时候,如果你设置的逻辑条件不成立,它会立即终止程序并打印出相关信息(比如函数调用栈、文件行号等)。
如果你在写代码的时候,经常在一些
关键点设置一些
条件恰当的assert,可以大量节约调试时间。我自己写的程序,在自测的时候,有70%-80%的逻辑错误会被assert暴露出来,所以改起来非常快;测试人员提交给我的Bug,大概也有一半以上可以通过assert快速定位出错误的源头。
★自动化测试
说完了程序员的例子,我再说一下测试人员(其实我在“
每日构建:流程”已经稍微提到了测试的自动化)。我发现很多公司的测试人员,重复劳动特别严重。他们不断地重复做一些软件功能的验证操作;发现bug后通知程序员改;程序员改完,再次进行验证操作......如此循环往复。N年之后,这些测试人员的个人能力没啥提高,年龄倒大了不少。
在此我强烈建议测试人员,尽量多使用一些自动化测试工具(比如QTP)和一些测试脚本来完成上述的软件功能验证操作。不光能节约很多时间,提高了效率;而且在自己编写测试脚本的过程中,或许还能学些新东西,提高一下个人能力。比如我见过一个测试人员,由于经常用Python写一些脚本进行网络和数据库方面的测试,久而久之,Python就很熟悉,然后就被转做Python编程。
★人肉自动化
上面说的自动化都是技术层面的(都是靠软件实现)。为了给大伙儿扩展一下思路(免得思维定势),最后来说一下非技术的例子。
比如部门中经常有人出差,每次出差都要都要订机票。订机票就属于重复劳动,而且挺繁琐。得去网上查航班、还得看哪个航班折扣优惠、选好航班还得付钱,然后去机场还得打印行程单,出差回来还得填写报销单(报销单还得找N个人签字),然后拿着报销单与行程单找秘书报销。这些琐事累加起来,少说也得一个小时才能搞好。
为了提高效率,把上述这些琐事统统都交由秘书搞定。出差的家伙需要做的就是发一个邮件告诉秘书,要订某天某时的飞机到某地,就一切OK了。经过这样改革,部门里的人(除了秘书)都皆大欢喜。
追求原创,欢迎转载。
转载必须包含本声明、保持本文完整。并以超链形式注明作者编程随想和本文原始地址:
http://program-think.blogspot.com/2009/02/7.html
如何成为优秀开发人员[7]:正确地做事(善用自动化)
最新推荐文章于 2024-08-30 14:13:47 发布