8 、猜测和检查
在你的编程生涯的早期阶段,你经常会发现许多潜在的解决方案,并且不能100%确定你将如何修复一个错误。
在这种情况下,你必须尝试两到三个不同的解决方案,看看会发生什么。正如提示4中所指出的,经常运行你的代码,这样你就能迅速得到反馈,如果你的方法似乎不奏效,就可以改变你的方法。
当你试图修复代码时,你有可能在程序中引入一些其他错误。这可能会使你很难理解你是越来越接近一个固定的程序,还是已经退步了。
为了避免完全破坏代码并重新开始,尽量不要你在网上或其他地方找到的解决方案的兔子洞中走得太远。
重要的是,在你决定向别人寻求帮助之前,要保持自己的开放性,尝试一些解决方案。当你向他们寻求帮助时,任何程序员首先会问你的一件事就是列出你尝试过的几个解决方案。
在尝试了几个解决方案后,向你求助的人解释这些解决方案,不仅可以给他们提供线索,让他们知道下一步该怎么做,还可以表明你对解决问题的决心。
9 、如果你不能确定问题所在,请运行二进制搜索
你运行的程序越大,你需要检查错误的地方就越多。
当一个项目超过50行时,找出代码中的错误可能是一个挑战。虽然堆栈跟踪和错误信息可以给你一个线索,告诉你在哪里寻找错误,但有时,这些根本没有帮助。
如果你发现自己处于这种情况,最好是运行二进制搜索。这将使你能够在你的程序中找到不符合预期行为的部分。
下面是对二进制搜索工作原理的简要分解。
在高层次上,二进制搜索包括将数据分成两半,并在两半中搜索你要找的东西。
一旦搜索出数据在哪一半,这一半的数据就会被分成两部分,并对这两部分进行搜索,以找到感兴趣的对象(在本例中是一个错误)的位置。
二进制搜索是找到代码中错误的最快方法之一,因为它将程序分成两半,使你能够准确地找到问题所在。
当寻找一个程序中的错误时,只运行它的前半部分,添加注释后半部分。打印运行到一半的程序的结果。
如果结果和预期的一样,你可以得出结论,程序的前半部分运行正常。你要找的问题可能是在程序的后半部分。
然而,如果结果有问题,错误就在程序的前半部分。
重复运行部分代码的过程,直到你找出问题的根源。
这个提示结合了本帖前面提到的许多提示。
10 、寻求帮助
如果你已经尝试了所有的方法,但无法弄清程序中的问题,你可能已经准备好向别人寻求帮助了。
无论你是向朋友、老师还是同事求助于你的错误,都要确保你有以下所有的组成部分,以提出一个出色的问题:
解释一下目标。
展示有错误的代码。
显示堆栈跟踪和错误信息。
解释你已经尝试过的方法,以及为什么这些方法不起作用。
有时,当你写下这些细节或在脑海中过一遍后,你可能会想到一个新的解决方案。为什么会出现这种情况,其背后的思考是,提出一个好的问题会使解决方案显而易见。
出于这个原因,许多程序员在去找人帮忙之前会收集上面列出的所有事实。这个提示可能正好解决了你的问题。