马云语录:
世界是由懒人来支撑的!
懒不是傻懒,如果你想少干,
就要想出懒的方法。
要懒出风格,懒出境界。
McConnell在他的<<Code Complete>>提到三种"懒":"实在的懒","开明的懒"以及"一劳永逸的懒"。并说明第三种"懒"才是最具产值的"懒",因为它需要运用工具或者代码来为自己完成任务:这就是工作中的自动化。<<The Pragmatic Programmer>>的作者也有专门章节提到"一切都要自动化"。这些都有异曲同工之妙。到底我们的开发工作中有哪些是可以自动化的呢?
凡是需要重复的工作(Routine)都可以想办法做到自动化。
第一步,可以将编译及软件发布的工作自动化。这类的流程比较固定,还可以在编译后执行一些检查工作。如果你愿意都可以将写Release Note的动作自动化。
第二步,可以将手工容易出错,但判断条件单一的工作自动化。比如多国语言的制作以及当前Bug状况检查的动作自动化。
第三步,将测试自动化。对于一些固定的测试用例,或者为新产生的Bug而建的测试用例放置到一个自动化测试脚本中,这样基本可以做到有效的回归测试,对于软件质量将有相当大的帮助。程序员大多对于测试并不热衷,如果有这样一个偷懒的方法,未尝不是件好事。
第四步,将编码自动化。至少有些程序是可以这样的。
偷懒的背后是需要自我突破的勇气的,也是一种永不止步的进取精神。如果发现自己不断重复一件事情,或许每次有些小的变化,我们都可以努力建立一个模型或者流程,使它可以自动化。在财务管理中有一个概念叫ABC (Activity based costing),它是强调将工作细化到每个独立的步骤。在软件开发工作中绝大份工作都是遵循一定的流程或模型,只要找到这个不变的内在,就可以想办法加以自动化(或者半自动化)。
而可以用来帮我们做到自动化的工具很多,大部份都在SourceForge中,有空去转转。它们或者有以下一些分类:
代码检查工具:xLint (splint), cyclo [java: http://www.iteye.com/topic/564690]
UI自动化工具:AutoIt之类的
强大的脚本工具: Perl, Python
还有一个常在你身边的工具:Microsoft Office. 我经常使用Excel来作公式的验证,我的一个同事也利用Word中的VBA还完成一批文件格式转换的工作。
如果我们可以将工具或自己开发的程序视为自己团队的一员,那我们就不是一个人在工作。让它们忙去吧,我们还有更重要的事做!