遇到BUG时你应该怎么做
来源:互联网 发布:mysql 任务 编辑:程序博客网 时间:2024/04/29 09:08
下面是拜读Think Python 中关于代码错误的调试方法的一些记录,特意摘出来以便告诫自己
当你的程序不工作时,
1.首先你需要问自己这些问题:
- 有没有什么程序应该做却没有发生?找到执行该函数的代码段,确保程序被执行。
- 有没有什么不应该发生的发生了?找到执行该函数的代码段,查看它是否执行了?
- 有没有代码的执行效果与你期望的不同?确保你理解有问题的代码,阅读你调用的函数的文档,用一些简单的例子进 行测试。
在编程时,你心中需要有一个关于程序如何工作的模型。如果你的程序没有按照你期望的工作,很可能问题不在于程序,而在于你心中的模型。
修正你心中的模型的最好的方法是将程序分割为不同部分(通常是函数和方法),并分别测试。一旦你发现了模型和现实的差异,你就可以解决问题。
当然,在开发的过程中尼需要建立并测试组件。如果你遇到了问题,只有一小部分新的代码是不确定正确性的。
我写了一个很长的表达式,它没有按照我期望的工作
编写复杂的表达式是合理的,如果它们可读。但是它们调试起来很困难。通常我们将一个
复杂的表达式分割成一系列的临时变量的赋值。
我的函数或方法没有按照我期望的返回
如果你的return 语句包含一个复杂的表达式,你没有机会在返回前打印返回值。同样你可以使用临时变量。例如:对于
return self.hands[i].removeMatches()
你可以写成:
count = self.hands[i].removeMatches()
return count
现在你在返回前可以打印count 的值。
我实在是卡住了,我需要帮助
第一,尝试离开电脑几分钟。电脑辐射会对大脑产生影响,导致下列几种症状:
沮丧和愤怒
迷信的人认为“电脑讨厌我”,并神奇的相信“程序仅当我向后戴着帽子时才工作正常”。
随机漫步编程(用各种可能的方法编程,并选择工作正常的那个)。
如果你发现你有以上任意一种症状,站起来走一走。当你心绪平静时,思考一下程序。它
是做什么的?什么肯能造成了这种行为?上次可以工作的程序是什么时候?下一步做什么?
有时找到一个错误很费时间。我常常在我离开电脑,让思维游荡的时候找到错误。一些找
到错误最好的地方有火车上,浴室里,以及临睡前。
不,我真的需要帮助
即使最好的程序员也会卡住。有时你在一个程序上工作了太长的时间,因此你难以发现错
误。而他人可能一眼就发现问题。
在你向其他人寻求帮助前,你需要做好准备。你的程序需要尽可能简洁,你需要最少的输
入来重现错误。你需要在合适的位置加入print 语句,同时输出应可理解。你需要能够以
简洁的语言描述问题。
当你想某人求助,你需要提供足够的信息:
是否有出错消息?它是什么?指向程序的哪部分?
错误出现前你做的最后一步是什么?你写的最后几行是什么?什么新的测试导致了错误?
你做了哪些尝试?你学到了什么?
当你找到了错误,花时间想一想你怎么能更快的定位它。下一次你遇到类似的问题,你就
可以更快的找到问题。
记住,目标不仅仅是让程序工作,而是学会如何让程序工作。
阅读全文
0 0
- 遇到BUG时你应该怎么做
- 你应该怎么做
- 遇到这种情况,你会怎么做?
- 网站优化:搜索引擎告诉你应该怎么做SEO
- 我们应该怎么做?
- 日志应该怎么做
- 怎么做bug预防?
- 【PM】项目管理之进度:如果发现因为种种原因导致实际工期远远超出预计工期时,你应该怎么做
- 程序员遇到bug怎么面对?
- 产品经理应该怎么做??
- 项目应该怎么来做?
- 大学应该怎么做cs
- SEO新手应该怎么做
- 游戏应该怎么做-美术
- 进入前二十应该怎么做?
- 性能测试应该怎么做?
- 新手入门SEO应该怎么做?
- 性能测试应该怎么做?
- Codeforces
- 设计模式(8)--Decorator(装饰器模式)--结构型
- maven(1)-基础理论知识
- Linux的各种指令笔记
- node.js连sqlserver demo
- 遇到BUG时你应该怎么做
- 绝对震撼 7款HTML5动画应用及源码
- 截取图片DEMO. JAVA Windows FFmpeg
- Unity3D白皮书(三)MeshRenderer设置
- FTL常用标签及语法
- xpath爬取Python100例
- 计算机视觉领域的SCI期刊介绍
- Unity 基础寻路-NavMesh
- C语言基础-2