阅读更多

12顶
2踩

编程语言

转载新闻 Debug时不要忘了这些原则

2014-08-08 11:13 by 正式记者 newer7 评论(6) 有16920人浏览
不论是什么行业里,能让人最兴奋的事情通常都是解决新奇的、高难度问题带来的刺激。在我的工作中,经常会遇到很多bug,乍一看,它们都是不可能的。不是不可能解决,而是完全不可能出现。就好像最前沿的科技揭示了一个新的奇怪的逻辑现象,以至于人的大脑完全无法理解。

当然,这里我总结的这些bug都是很独特的,如果你想说是否能有某种最先进的系统性的方法能将这些bug归类,统一解决,那是愚蠢的,就好像一个人无法认识到自己在犯错而避免过错一样。不管怎样,下面的这些debug原则对我是十分有效的,而且我相信,对大多数程序员也都是有效的。

  • 你改错了文件
  • 你改对了文件,但却是在别人的机器上
  • 你改对了文件,但忘了保存
  • 你该对了文件,但忘了重新编译
  • 你认为你把那个东西开启了,但实际上你把它关闭了
  • 你认为你把那个东西关闭了,但实际上你把它开启了
  • 会议中,你应该用心听
  • 你运行了错误的版本
  • 你运行了正确的版本,但却是在别人的机器上
  • 你改正了问题,但忘了提交
  • 你改正了问题,也提交了,但忘了push到版本库中
  • 你改正了问题,也提交了,也push了。然而,很多用户的工作都依赖于之前有问题的版本,于是你必须回滚。
我非常虔诚的向大家奉送这些debug原则,任何一次debug都不可能只使用其中的一个方法解决。我真挚的希望大家通过对这些debug原则的思考能获得意想不到的收获。

英文原文:Cutting edge debugging
译文链接:东半球最先进的debug技巧
来自: 程序师
12
2
评论 共 6 条 请登录后发表评论
6 楼 文仁126520 2014-08-21 13:11
嗯嗯,我经常这样做
5 楼 422759366 2014-08-20 16:49
吃饭,睡觉,改bug
4 楼 dsjt 2014-08-15 14:53
no bug  no bug, but  有!!
3 楼 ray_linn 2014-08-12 13:21
有源代码的调试不叫调试。
2 楼 parwin2 2014-08-11 08:48
不错,有些bug真的一方面无法重现,另一方面,测试和投产老是出现不一样的bug状况。
1 楼 linginfanta 2014-08-09 08:42
你总结的很好啊。秘鲁玛卡

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 1024程序员节前夕,Bug与Debug的随笔

    不论是单机上的应用,还是分布式系统,debug时遵循问题隔离的原则,便于定位问题。 问题隔离 可能是所有debug中最强大的核心原则. 问题是否可重现是非常重要的。如果不能 重 现这个问题的产生方式, 解决起来会变得...

  • 实验一_调试程序DEBUG

    1.熟练掌握DEBUG调试程序的常用命令;2.学习手工汇编;3.学习常用命令用法,掌握算术,逻辑运算指令功能及其对标志位的影响.

  • Debug 是门艺术

    【这是一猿小讲的第78篇原创分享】最近想结合发生在身边码农身上的一些小故事,尝试表达一个观点“Coding 是门技术,Debug 是门艺术”。上期的分享《Coding 是门技术》主要...

  • debug技巧

    不论是什么行业里,能让人最兴奋的事情通常都是解决新奇的、高难度问题...当然,这里我总结的这些bug都是很独特的,如果你想说是否能有某种最先进的系统性的方法能将这些bug归类,统一解决,那是愚蠢的,就好象一个人无

  • 全网最牛的debug技巧,不看后悔!

    分享这些debug原则,我真挚的希望大家通过对这些debug原则的思考能获得意想不到的收获。任何一次debug都不可能只使用其中的一个方法解决。 自己是一个五年的前端工程师,如果你对编程开发感兴趣 这里推荐一下我的...

  • 东半球最先进的debug技巧

    东半球最先进的debug技巧 不论是什么行业里,能让人最兴奋的事情通常都是解决新奇的、高难度问题带来的刺激。在我的工作中,经常会遇到很多bug,乍一看,它们都是不可能的。不是不可能解决,而是完全不可能出现。...

  • 最牛的debug技巧,不看后悔!

    分享这些debug原则,我真挚的希望大家通过对这些debug原则的思考能获得意想不到的收获。任何一次debug都不可能只使用其中的一个方法解决。 来自 “ ITPUB博客 ” ,链接:...

  • 东半球最先进的 debug 技巧

    不论是什么行业里,能让人最兴奋的事情通常都是解决新奇的、高难度问题带来的刺激。在我的工作中,经常会遇到...当然,这里我总结的这些bug都是很独特的,如果你想说是否能有某种最先进的系统性的方法能将这些bug归...

  • 用心理解设计模式——设计模式的原则

    设计模式总是看完又忘了, 忘了再翻出来看。 我想,应该抽时间仔细捋一遍。 理想的软件实现应该是:依照功能需求设计接口,模块化组装,各模块之间只通过接口耦合,模块内部实现丝毫不关心。就像使用电子元件组装...

  • 十万字全网最全数据结构代码

    链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很...

  • 关于SQL易忘的知识点

    主要记录SQL尤其是MySQL中,一些看了就忘,需要经常查的小知识点~ 快速查询1. 下划线_通配符与百分号%通配符的区别2. 匹配不区分大小写3. MySQL正则表达式4. LIKE和REGEXP的区别5. 匹配6. 文本处理函数7. 日期和时间...

  • 2024年Unity 面试题 |五萬字 二佰道| Unity面试题大全,面试题总结【全网最全,收藏一篇足够面试】

    你既然使用了继承,那代表着你认同子类都有一些共同的特性,所以你把这些共同的特性提取出来设置为父类。继承的传递性:传递机制 a▶b; b▶c; c具有a的特性 。继承的单根性:在C#中一个类只能继承一个类,不能有多个...

  • Linux Kernel - Debug Guide (Linux内核调试指南 )

    现在,linux的世界里已经不缺少牛书了,将尽一千页一本的满载答案的砖头书接踵而来,但是渐渐地发现,看书看到后面就忘了前面,回到前面有忘了后面,甚至一个章节还没看完,那个子系统已经被完全重写了。慢慢地,就...

  • Android开发——性能优化的基本原则

    注意,也不要一味照搬,要按照具体情况运用 #####   二、避免创建重复的对象: 一提到这个问题,就不得不让人想起 Java 中一个特别经典的案例: Stirng , StringBuilder , StringBuffer 三基友的关系,...

  • 2019-7-31-程序猿修养-日志应该如何写

    对于只有自己才需要了解的调试内容,需要在记日志的时候带上更多有用的信息,本金鱼君在写只有自己需要知道的调试内容的时候,会多写一部分注释,不然第二天调试就忘了内容 而对于模块调试内容,建议的一般方法是...

  • Debug一例,Wordpress 插件 Blogger Importer Extended 导入 blogger 图片问题

    "我输入什么这个现象才出现来着,唉呀状态不好,忘了。"工程方法让每一个人都不必非得是天才,也能做好工作。 我选择 php 本身内置的 error_log,日志写到error.log中,而不是另打开一个文件写进去。如无必要,...

  • 风光储直流微电网Simulink仿真模型:光伏发电、风力发电与混合储能系统的协同运作及并网逆变器VSR的研究,风光储直流微电网Simulink仿真模型:MPPT控制、混合储能系统、VSR并网逆变器的设

    风光储直流微电网Simulink仿真模型:光伏发电、风力发电与混合储能系统的协同运作及并网逆变器VSR的研究,风光储直流微电网Simulink仿真模型:MPPT控制、混合储能系统、VSR并网逆变器的设计与实现,风光储、风光储并网直流微电网simulink仿真模型。 系统由光伏发电系统、风力发电系统、混合储能系统(可单独储能系统)、逆变器VSR?大电网构成。 光伏系统采用扰动观察法实现mppt控制,经过boost电路并入母线; 风机采用最佳叶尖速比实现mppt控制,风力发电系统中pmsg采用零d轴控制实现功率输出,通过三相电压型pwm变器整流并入母线; 混合储能由蓄电池和超级电容构成,通过双向DCDC变器并入母线,并采用低通滤波器实现功率分配,超级电容响应高频功率分量,蓄电池响应低频功率分量,有限抑制系统中功率波动,且符合储能的各自特性。 并网逆变器VSR采用PQ控制实现功率入网。 ,风光储; 直流微电网; simulink仿真模型; 光伏发电系统; 最佳叶尖速比控制; MPPT控制; Boost电路; 三相电压型PWM变换器;

  • 以下是针对初学者的 **51单片机入门教程**,内容涵盖基础概念、开发环境搭建、编程实践及常见应用示例,帮助你快速上手

    以下是针对初学者的 **51单片机入门教程**,内容涵盖基础概念、开发环境搭建、编程实践及常见应用示例,帮助你快速上手。

  • 【Python毕设】根据你提供的课程代码,自动排出可行课表,适用于西工大选课_pgj.zip

    【Python毕设】根据你提供的课程代码,自动排出可行课表,适用于西工大选课_pgj

Global site tag (gtag.js) - Google Analytics