在空白的文本编辑器里打开一个崭新的文本,没有一行代码,出现在眼前的是一个充满了无限可能和希望的项目。可是,当数千行的代码写完之后,整个项目因为bug的出现而被压垮了,更别说添加什么新功能了...这也许是对程序员的最大打击,在饱满的热情上浇了一盆冷水。其实,最好的软件程序员当然知道怎样去发现并修复这些bug,在刚开始编程的时候就通过软件工程的最好方法来降低bug的出现概率。
几乎没有哪个程序员能够写出一个bug都没有的代码,但是解决方法总是比困难多得多。多实践和坚毅的决心是成功的关键,这样才能够写出清洁代码,保证软件系统的可靠性。
下面一起来看看这些可以镇压bug的工具箱。
1. 输出语句
代码调试的首要工具就是插入可靠地、真实的输出语句。当输出语句数量庞大且不易于管理的时候,在输出语句里恰当使用记录系统,这可以说是一个等效的好方案。许多编程语言里都配备了现成的类库,例如在Python里构建的记录库。
输出语句是程序员检查数据值和变量类型最快、最简单和最直接的方式。高效的输出语句能够帮助程序员通过一段代码来跟踪数据流,并快速识别bug源头。虽然先进的调试工具有很多,但是如果你想调试一段代码的话,这个普通的输出语句的方法应该是程序员最先考虑的方法。
2. 调试器
源代码调试器采用了输出语言方法里的逻辑推理。这样可以让程序员一行一行的单步执行代码,同时监测从变量值到底层虚拟机整个状态的一举一动。另外,大部分的编程语言都具有多个调试器,可以提供不同的功能,包括图形接口、终止程序的断点设置、执行环境内部任意代码的实施。
在许多情况下,调试器可以说是大材小用了,但如果合理利用的话,调试器绝对是一款高效率的工具。更多调试器的功能请看Python调试器:pdb。
3. Bug跟踪系统
在一些比较重大的软件项目里,使用bug跟踪系统是很有必要的。如果没使用bug跟踪器,最典型的状况就是程序员要整理以往的邮件或者是聊天记录来查找bug,更糟糕点儿的就是程序员根本不记得其它东西,印象里只有一点bug的文档。一旦这种情况发生,bug将必然充斥着整个代码编程,更加严重的是,想要识别出这些bug并确定它们的位置是很难的。
一个简单的文本文件在项目里可以作为最初的bug跟踪系统。随着代码库的不断增加,bug衍生出一个文本文件并不需要太长的时间。有很多商业和开源的bug跟踪软件提供的解决方案都是可以考虑的,选择哪一个bug跟踪软件首先要明确的部分就是要确保在编程项目里,那些非程序人员能够快速使用这个bug跟踪系统。