遇到BUG时你应该怎么做
2017-08-26 17:05
453 查看
下面是拜读Think Python 中关于代码错误的调试方法的一些记录,特意摘出来以便告诫自己
当你的程序不工作时,
1.首先你需要问自己这些问题:
有没有什么程序应该做却没有发生?找到执行该函数的代码段,确保程序被执行。 有没有什么不应该发生的发生了?找到执行该函数的代码段,查看它是否执行了?
有没有代码的执行效果与你期望的不同?确保你理解有问题的代码,阅读你调用的函数的文档,用一些简单的例子进 行测试。
在编程时,你心中需要有一个关于程序如何工作的模型。如果你的程序没有按照你期望的工作,很可能问题不在于程序,而在于你心中的模型。
修正你心中的模型的最好的方法是将程序分割为不同部分(通常是函数和方法),并分别测试。一旦你发现了模型和现实的差异,你就可以解决问题。
当然,在开发的过程中尼需要建立并测试组件。如果你遇到了问题,只有一小部分新的代码是不确定正确性的。
我写了一个很长的表达式,它没有按照我期望的工作
编写复杂的表达式是合理的,如果它们可读。但是它们调试起来很困难。通常我们将一个
复杂的表达式分割成一系列的临时变量的赋值。
我的函数或方法没有按照我期望的返回
如果你的return 语句包含一个复杂的表达式,你没有机会在返回前打印返回值。同样你可以使用临时变量。例如:对于
return self.hands[i].removeMatches()
你可以写成:
count = self.hands[i].removeMatches()
return count
现在你在返回前可以打印count 的值。
我实在是卡住了,我需要帮助
第一,尝试离开电脑几分钟。电脑辐射会对大脑产生影响,导致下列几种症状:
沮丧和愤怒
迷信的人认为“电脑讨厌我”,并神奇的相信“程序仅当我向后戴着帽子时才工作正常”。
随机漫步编程(用各种可能的方法编程,并选择工作正常的那个)。
如果你发现你有以上任意一种症状,站起来走一走。当你心绪平静时,思考一下程序。它
是做什么的?什么肯能造成了这种行为?上次可以工作的程序是什么时候?下一步做什么?
有时找到一个错误很费时间。我常常在我离开电脑,让思维游荡的时候找到错误。一些找
到错误最好的地方有火车上,浴室里,以及临睡前。
不,我真的需要帮助
即使最好的程序员也会卡住。有时你在一个程序上工作了太长的时间,因此你难以发现错
误。而他人可能一眼就发现问题。
在你向其他人寻求帮助前,你需要做好准备。你的程序需要尽可能简洁,你需要最少的输
入来重现错误。你需要在合适的位置加入print 语句,同时输出应可理解。你需要能够以
简洁的语言描述问题。
当你想某人求助,你需要提供足够的信息:
是否有出错消息?它是什么?指向程序的哪部分?
错误出现前你做的最后一步是什么?你写的最后几行是什么?什么新的测试导致了错误?
你做了哪些尝试?你学到了什么?
当你找到了错误,花时间想一想你怎么能更快的定位它。下一次你遇到类似的问题,你就
可以更快的找到问题。
记住,目标不仅仅是让程序工作,而是学会如何让程序工作。
相关文章推荐
- 菜鸟学Python(5):IDLE的一个bug(怎么总遇到bug?)
- 工作中遇到新知识应该怎么办
- 遇到问题,我应该怎么办?
- 《测试自动化》遇到这些问题应该怎么解决?
- 我们在平时或面试遇到这些问题时,我们应该怎么回答?
- 工作中遇到新知识应该怎么办
- 遇到bug怎么办
- 北京尚学堂|程序员一般遇到BUG怎么办
- 一位女程序员遇到的问题,大家帮她想想应该怎么办!!!!!
- 求助 3ds max模型导入vrp的问题 求大神指教 等 这个问题大家有遇到过吗 应该怎么解决啊
- 当单片机遇到多个模块的数据需要处理,应该怎么办?
- 工作中遇到新知识应该怎么办 .
- Maven遇到github引用的项目有bug怎么办?
- 工作中遇到新知识应该怎么办
- 遇到bug你会怎么做?
- Android遇到问题应该怎么解决
- 自媒体遇到瓶颈了应该怎么去突破
- 程序员遇到bug怎么面对?
- Atitit 酷奇的押金危机 遇到资金链断裂作为创始人应该怎么办
- 菜鸟学Python(5):IDLE的一个bug(怎么总遇到bug?)