Perl程序写多了,便形成一定的开发套路。我写程序的习惯一度很不好,没有自动单元测试,没有版本控制,现在这两个陋习正在改掉,尽管做得仍然不够严谨。
我习惯先把程序写出来。在实现一定的功能之前,只是简单地手工测试一下,版本控制也不做。当程序具备一定规模之后,才做版本控制,然后加测试。很多时候都是凭感觉,犹豫便是开始做版本控制的信号,面对自己熟悉的Emacs和Perl,却不敢敲入哪怕一个字符,这是理智在提醒自己,到Subversion上场的时候了。感觉自己在上版本控制前后写程序的风格也不同,之前是大开大阖,之后是谨小慎微,频繁提交。
人以群分,物以类聚。好习惯也一样,做了一个,就想着做另一个。所以版本控制之后,通常便盘算着怎么做自动单元测试。写测试可不像把程序放入版本控制那么简单,总是要费一番脑筋,对程序做较大的改动,才好写出一个个单元测试来。一个容易测试的程序,很有可能是一个容易理解的程序。我看自己做了测试的程序,往往函数体短小,功能单一。
因为写测试很费脑筋(看来还是功力不够啊),所以完成之后容易厌倦,开发出现停滞,需要休息一段时间才能重燃激情。