有不少的新手程序员,刚开始都是从修BUG开始做起的。

修bug有助于熟悉项目,了解大概哪些类参与了执行线路,相互调用关系又是如何,结构设计上有什么特点。

对于新手程序员而言,在复杂代码中找BUG是一个难点。下面w3cschool给程序员小伙伴们分享5大找BUG的技巧:

0、二分法定位技巧

无论是有多复杂的代码,利用二分法定位技巧一般都是可以定位到问题所在。

从二分法定位技巧可以延伸出一些具体的处理bug的方法,比如:对输入数据二分、对代码版本二分、注释掉部分代码、在不同位置插入试探性代码、对运行环境二分。

1、IDE调试

IDE的VS debug的功能简直就是立竿见影。它可以加断点,单步调试。

单步调试可以让我们对代码逻辑,执行顺序,以及各种中间结果更加清晰。

至于本身容易出错的BUG,用IDE调试简直是再合适不过了。

2、重新读一遍程序

相对新手程序员来说,如果代码出现bug,可以重新读一遍程序。这种方法是最有效、最快速的 Debug 方式。

3、必杀,重写一遍

如果你发现无论如何也找不到BUG,而且代码只是复杂,本身不是很长,直接重写代码吧!

4、小黄鸭调试法

小黄鸭调试法是程序员们经常使用的调试代码方法之一。

小黄鸭不懂程序,所以我们可以向他解释每一行程序的作用,以此来激发灵感。

最后,你比较喜欢用哪一种方法调试bug呢?

程序员从复杂代码中找BUG的5种方法,你用过几个?相关推荐

  1. 程序员总结的:最没有学习效率的 5 种方法!你在用其中哪一种?

    学习编程的弯路多得数不完,坑多得踩不完. 编程是一门手艺,需要不断地进行练习. 但是,不是所有的编程学习和练习都是有效的,下面笔者给程序员小伙伴总结出无效学习编程的5种方式,避免小伙伴们走弯路. 0. ...

  2. 一名Android程序员如何减少代码中该死的-if-else-嵌套,怎么让代码更简洁?

    减少代码中该死的-if-else-嵌套,让代码更简洁! 写在前面 不知大家有没遇到过像"横放着的金字塔"一样的if else嵌套: if (true) {if (true) {if ...

  3. Java程序员如何在编码中减少bug存在

    动力节点Java远程基础班免费赠送学习名额,机会就在眼前,快来报名吧,名额有限,先到先得. Java编程语言在IT行业毋庸置疑是企业中不可缺少的,从Web应用到Android应用,这款语言已经被广泛用 ...

  4. c语言清除html标签的方法,去除HTML代码中所有标签的两种方法

    去除HTML代码中所有标签 '****************************** '函数:RemoveHTML_A(strText) '参数:strText,待处理的字符串 '作者:阿里西西 ...

  5. (转)程序员新人怎样在复杂代码中找 bug?

    我曾经做了两年大型软件的维护工作,那个项目有10多年了,大约3000万行以上的代码,参与过开发的有数千人,代码checkout出来有大约5个GB,而且bug特别多,open的有上千,即使最高优先级的s ...

  6. 程序员新人怎样在复杂代码中找 bug?

    我曾经做了两年大型软件的维护工作,那个项目有 10 多年了,大约 3000 万行以上的代码,参与过开发的有数千人,代码 checkout 出来有大约 5 个 GB,而且 bug 特别多,open 的有 ...

  7. 如何开发app软件?程序员揭秘你还没听过的1种方法

    如何开发app软件?app软件开发需要多少钱?现在手机app这么火,很多企业都想开发一个app软件开拓市场.但是在开发app的时候往往会感觉力不从心,因为app开发门槛比较高,大家对app软件开发需要 ...

  8. 在JUnit中处理异常的3种方法。 选择哪一个?

    在JUnit中,有3种流行的方式来处理测试代码中的异常: 尝试捕捉习语 使用JUnit规则 带注解 我们应该使用哪一个?何时使用? 尝试捕捉习语 这个习语是最受欢迎的习语之一,因为它已在JUnit 3 ...

  9. 计算机表演赛bug,只会编程序,敲代码,找bug?不,他们保研浙大、去美国进修……...

    大学生活该如何度过?面对这个问题,南京林业大学信息院吉嘉铭.郭恒康和李明止三名同学有着独到的见解.近三年里,他们参加蓝桥杯软件大赛和信息技术专业人才大赛多场个人比赛,获得省部级以上多项奖励.2018- ...

最新文章

  1. L1-006 连续因子
  2. 【vue-router②】使用导航守卫控制页面前进刷新,后退缓存
  3. 大流量高并发量网站的之解决方案
  4. python telnet模块 more_[宜配屋]听图阁 - python 处理telnet返回的More,以及get想要的那个参数方法...
  5. 终端定时任务 开始缓冲_如何开始使用终端以提高生产力
  6. rtsp协议的视频服务器,RTSP拉流协议视频平台EasyNVR能够接入多少路视频直播流?...
  7. 搭建数字图像处理开发环境(Python+pycharm+opencv)
  8. mysql中的union用法以及子查询综合应用
  9. 二叉树和等于某值路径_Go刷LeetCode系列:二叉树(3)二叉树路径和
  10. checkValidity()验证输入信息合法性,自定义错误提示信息方法及误区
  11. 黑马程序员:java基础学习——数组
  12. Atitit Hadoop的MapReduce的执行过程、数据流的一点理解。 目录 1. Why 为什么使用hadoop 1 2. Hadoop的MapReduce的执行过程 1 2.1. Had
  13. 12月PMP备考~通关宝典
  14. Python生成文档(PDF, HTML)
  15. 如何修复win7蓝牙服务器,win7系统查看蓝牙的修复办法
  16. ENVI 5.3 计算NDVI的几种方法及结果的差异分析
  17. 在线数据图表制作-FineReport文本控件
  18. noindex如何使用?
  19. 论文阅读笔记——VulDeePecker: A Deep Learning-Based System for Vulnerability Detection
  20. java实现通过浏览器方式下载文件及多个文件

热门文章

  1. 计算机打开硬盘响应慢,电脑处理多任务卡顿,开机反应慢,换固态硬盘不能解决问题根本...
  2. SQL SERVER 提取字符串中字母
  3. E: Unable to locate package python-distutils The command ‘/bin/sh -c apt-get update apt-get insta
  4. 网站打开很卡是为什么?
  5. 网易云 -微信小程序-vue
  6. Linux快速安装Python3.6 - 邱乘屹的个人技术博客
  7. SQL中对 datetime 类型操作
  8. USB设备仿真框架设计指南——11.在托管代码中开发DSF应用程序
  9. mysql数据的复制与恢复_MySQL 数据库的备份与恢复
  10. 爱国者新品发布 智能果汁机助力双创 居家创业双赢新产能