10个调试和排的小建议.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10个调试和排错的小建议 ?在空白的文本编辑器里打开一个崭新的文本,没有一行代码,出现在眼前的是一个充满了无限可能和希望的项目。可是,当数千行的代码写完之后,整个项目因为bug的出现而被压垮了,更别说添加什么新功能了...这也许是对程序员的最大打击,在饱满的热情上浇了一盆冷水。其实,最好的软件程序员当然知道怎样去发现并修复这些bug,在刚开始编程的时候就通过软件工程的最好方法来降低bug的出现概率。 ? 几乎没有哪个程序员能够写出一个bug都没有的代码,但是解决方法总是比困难多得多。多实践和坚毅的决心是成功的关键,这样才能够写出清洁代码,保证软件系统的可靠性。 ? ? ? ? ? 下面一起来看看这些可以镇压bug的工具箱。 ? 1. 输出语句 ? 代码调试的首要工具就是插入可靠地、真实的输出语句。当输出语句数量庞大且不易于管理的时候,在输出语句里恰当使用记录系统,这可以说是一个等效的好方案。许多编程语言里都配备了现成的类库,例如在Python里构建的记录库。 ? 输出语句是程序员检查数据值和变量类型最快、最简单和最直接的方式。高效的输出语句能够帮助程序员通过一段代码来跟踪数据流,并快速识别bug源头。虽然先进的调试工具有很多,但是如果你想调试一段代码的话,这个普通的输出语句的方法应该是程序员最先考虑的方法。 ? 2. 调试器 ? 源代码调试器采用了输出语言方法里的逻辑推理。这样可以让程序员一行一行的单步执行代码,同时监测从变量值到底层虚拟机整个状态的一举一动。另外,大部分的编程语言都具有多个调试器,可以提供不同的功能,包括图形接口、终止程序的断点设置、执行环境内部任意代码的实施。 ? 在许多情况下,调试器可以说是大材小用了,但如果合理利用的话,调试器绝对是一款高效率的工具。更多调试器的功能请看Python调试器:pdb。 ? 3. Bug跟踪系统 在一些比较重大的软件项目里,使用bug跟踪系统是很有必要的。如果没使用bug跟踪器,最典型的状况就是程序员要整理以往的邮件或者是聊天记录来查找bug,更糟糕点儿的就是程序员根本不记得其它东西,印象里只有一点bug的文档。一旦这种情况发生,bug将必然充斥着整个代码编程,更加严重的是,想要识别出这些bug并确定它们的位置是很难的。 ? 一个简单的文本文件在项目里可以作为最初的bug跟踪系统。随着代码库的不断增加,bug衍生出一个文本文件并不需要太长的时间。有很多商业和开源的bug跟踪软件提供的解决方案都是可以考虑的,选择哪一个bug跟踪软件首先要明确的部分就是要确保在编程项目里,那些非程序人员能够快速使用这个bug跟踪系统。 ? 4. Linter ? 在某些编程语言里,Linter可以执行对代码的静态分析,以便在代码编写和运行之前识别出问题区域;在一些其它编程语言里,Linter工具对于语法检查和增强风格是很有帮助的。编程的时候在编辑器里打开一个Linter程序,或者是在代码编写和运行之前通过Linter传递代码,这些都有利于程序员在使用软件之前发现并纠正更多的错误。因此,使用Linter可以帮你在节省宝贵时间的同时揪出因语法错误、打字错误或数据类型错误而引起的bug源头。 ? 想要知道什么样的Linter最适合你使用,看看Python的Linter工具:Pyflakes。 ? 5. 版本控制 ? 任何一个重大的软件工程项目里都不应该忽略使用版本控制系统。举例而言,像Git,Mercurial和SVN这类的版本控制允许不同的代码库版本在不同的基础上是可以分开的。 ? 不同的控制版本可以被合并到一起,因此,多个程序员可以同一时间运行同一个代码库。版本控制在代码排错里同样有着举足轻重地位,可以让程序员回滚修改较早版本的代码,尽可能在错误出现之前,在代码库里对错误进行修复。 ? 6. 模块化 ? 缺少架构的代码是难以修复bug的主要源头。只要代码易于理解,而且理论上行得通,那么对于程序员来讲,找到并快速修复bug并不是什么棘手的事情。另一方面,越是重要的代码出现错误的几率就越大,找到这个错误相对也就比较困难。 ? 设计软件的组件经常需要考虑一点就是所谓的代码模块化,代码模块化可以帮助程序员更好的用两种方法来理解软件系统。第一,模块化能够创造出一定层次的抽象感,在没有完全理解所有细节的情况下也能想象出系统的模型。比如,程序员正在构建一个商业系统,可能会考虑到信用卡处理模块,然后观察这个模块和其余代码有什么联系,根本不用考虑信用卡处理模块的所有详细内容。第二,模块的详细说明,这个详细说明是不会和别的模块内容混淆的,就像每个卡只有一个卡号是一样的。 ? 7. 自动化测试 ? 单元测试和其它类型的自动化测试跟模块化是有很大关联的,可以说是相辅相承。自动化测试就是一段代码用特殊的输入值来运

您可能关注的文档

文档评论(0)

lanhe8975915 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档