我们为什么会引起bug?

老码农的自我修养:为什么会有BUG?过来人告诉你! 一、为什么会产生BUG 首先我们需要尝试理解一下什么Bug? 关于bug的解释 bug 是指任何计算机程序或硬件系统中的错误,故障或缺陷。错误会产生意外结果或导致系统意外运行 简单来说:bug就是程序出了问题,产生了意外的结果,没有按照预期的结果去运行。 产生Bug的原因有很多种: 开发者水平太低 不同的编译及运行环境 与需求方沟通不到位 马虎大意、考虑不周 放飞自我,Coding全靠自嗨 选择了错误的或者运行不稳定的第三方库 以上原因总结,主观和客观因素都会影响到Bug的产生,.. 阅读详情

     我们写程序,为什么总写出bug呢?有人说,没有bug程序员不就失业了吗!没有bug还要测试人员干啥!当然这只是玩笑话,但也侧面反应了bug和程序代码不能分割的关系,即使是一句非常简单的代码,也可能会在不同运行环境,不同编译条件等情况下产生bug,所以如果严谨的说一段程序没有bug,肯定要附加上某种条件,即在xx条件下,该段程序是没有bug的。
         虽然没有绝对的无bug程序,但是我们不能以此为理由,就认为程序员写出bug是天经地义,理所当然的。因为大部分bug都是沟通不到位,马虎大意,考虑不周等引起的,而非运行环境等客观因素导致。所以有必要分析一下bug产生的原因,以避免大部分bug的产生。以下是一些常见原因分析及对策:
        1)心流状态自作主张:程序员写代码有时会进入心流状态,这时候如果写到一段需求不清或逻辑矛盾时,往往会选择一个自己认为正确的逻辑写下去,或TODO一段注释,以防心流被打断,当然有些程序员也会立即去问产品策划,求证后继续写。
         2)心流状态被打断:程序员写代码正嗨时,忽然被别人打断或紧急处理一项其他任务,等再回来时,可能就会疏忽一些逻辑处理。
         3)马虎大意:写代码心不在焉,导致漏写,错写的发生。
         4)没有考虑边界情况:有些是需求边界文档中没有全部说明,而程序员又没考虑到。有些是程序角度的边界,如整型溢出,数组越界,属于数据类型没有选对。
         5)第三方库的bug:选择了不成熟的库,或不适应部署环境的库导致。
         以上几种情况中,马虎和沟通不到位都是可以尽量避免的,两者避免之后可以减少80%的bug,如何避免呢?我总结为二慢一快,即写代码前慢思考,写代码中快速实现,写代码后慢交付。
          首先,拿到一个需求时,先不要急于写代码,一定要把需求了解充分,把各种可能性想清楚,对需求中提到的,多质疑,对需求中未提到的多确认。需求想清楚后,在技术建模阶段,提炼出重点难点,考虑项目中是否有可复用的模块,重点难点有没有成熟的解决方案等,考虑清楚这些可以大概列出代码实现的先后顺序。
        然后,按分析好的需求和计划好的实现顺序开始码代码,这个阶段一定快速果断,切勿拖拉,一气呵成。中间如果不被打断那真是极好的。如此阶段拖拉或被打断时间很长,则一些思路就会连不上,要花费很多时间重新梳理,很容易遗忘一些情况,导致bug。
        最后,快速实现后,按需求把功能自己过一遍,查漏补缺,此阶段不用求快,有些程序员为了赶时间,快速交付,产生了bug,又回头修复,来回折腾,反而浪费了时间。还有些程序员写完就不管,交付测试,且不管代码写的好坏,这是一种不负责任的表现。
         以上马虎和沟通原因只要稍加注意,养成习惯,都能做的很好,其他情况的bug,有时是我们不可控的,那就遇到了分情况一一对应吧。
        关于bug,就先到此吧,希望bug能少些,工作更轻松些。

【完整梳理验证】企业微信第三方应用接入全流程java版 由企业内部的开发者自己开发部署,相当于是企业自己的资产,调用接口基本没有任何限制。由SaaS服务商的开发者开发并部署在服务商侧,面向所有企业。需要企业授权使用(先试用后付费),服务商仅可获取企业授权部分的权限,相当于白名单控制。由服务商的开发者开发,但部署在企业内部。一般是线下签约采购方式,因此权限几乎与自建应用无异,企业管理员只需要配置不对服务商开放的敏感权限,相当于黑名单控制。服务商后台地址:企业微信服务商官网企业管理后台地址:企业微信管理后台服务商,可以理解为 SAAS 中的运营端。企业管理端,可以理 阅读详情

相关推荐

logisim计组实验八 乘法器

原理:点这里 有问题欢迎留言哦~ 文章目录五位阵列乘法器电路图时间延迟分析六位补码阵列乘法器五位无符号乘法流水线原理图电路图原码一位乘法器原理图电路图补码一位乘法器 五位阵列乘法器 电路图 此处注意:全加器FA的cout端是进位端而非输出端 使用硬件控制比循环累加的速度快得多。 但是存在串行进位链 改进版: 时间延迟分析 T是计算相加数的一级门延迟 3n–>2n 性能差别在1.5倍 ...

treblez's blog 2万+

深入bug产生原因分析(一)

目录 一、前后端使用架构导致 二、开发人员经验问题/思维严谨性导致 三、业务特点导致 四、测试人员的经验缺乏导致 五、迭代周期不合理导致 六、上下游业务严重耦合导致 前言           产生bug的具体原因或许多种多样,但在bug原因分析过程中,希望能抽丝剥茧,找出其产生的根本原因。之前写过如何减少线上故障、典型故障分析、故障的坑,你踩了多少遍等等,如果能结合起来看线上、线下...

我的E家 9145

DXF转G代码是圆弧的方向如何确定?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1189

BUG产生的原因那么多,这四个最常见!

软件缺陷产生的原因多种多样,一般可能有以下几种原因。 1.需求表述、理解、编写引起的错误。 2.系统设计架构引起的错误。 3.开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。 4.程序员编程中产生的错误。 5.软件开发工具本身隐藏的问题。 6.软件复杂度越来越高。 7.与用户需求不符,即使软件实现本身无缺陷。 8.外界应用环境或电磁辐射导致的缺陷。 上述情况都可能产生缺陷,常见的缺陷分为以下4种...

成都汇智动力的博客 1万+

78.在 Vue3 中使用 OpenLayers 实现地图地点搜索定位功能

本文详细介绍了如何在 Vue3 中集成 OpenLayers,实现地图地点搜索和定位功能。Vue3 项目环境的搭建与依赖安装。使用语法实现地图初始化和控件集成。通过 OpenLayers 的 Popup 和 Geocoder 插件,实现地址搜索和定位。希望这篇博文能帮助你快速掌握 Vue3 与 OpenLayers 的集成技术。如果在使用过程中遇到问题,欢迎在评论区留言讨论,或者参考 OpenLayers 官方文档获得更多帮助。注意。

小彭的博客 1854

【测绘程序设计】——潮汐调和分析

最小二乘潮汐调和分析源码、使用示例及数据

C_xxy's blog 2653

为啥程序会有bug?

如果这是第二次看到我的文章,欢迎点击文末链接扫码订阅我个人的公众号(跨界架构师)哟~本文长度为4818字,建议阅读13分钟。坚持原创,每一篇都是用心之作~ 这是一篇半娱乐性的吐槽文章,权当给广大技术人员解解闷:)。 哈哈哈,然后我要开始讲一个经常在发生的事实了。(程序员们可能会感到一些不适) 99.999999999%做技术的都会被问到或者被吐槽到:“你的程序怎么又出bug了!” 反正,...

weixin_34130389的博客 554

windows中通过docker部署LocateAnything-3B模型

windows中通过docker部署LocateAnything-3B模型

yilvyangguang520的博客 485

Bug产生的原因有

开发人员完成功能后,需要自测: 开发过程中:每个工程师都希望能再前期就能将功能梳理完毕 自测意思是只在自己的手机上 Code Review 没有命名规范和代码规范。 对输入输出的数据不做验证。 Bug产生的原因包括以下这几种: 1 ,崩溃问题 2 ,技术难点问题 3 ,由于技术人员的粗

u011904605的博客 7561

Arcgis中的模型构建器技术之按属性批量建库并对应输出

好久没更新了,之前我们已经介绍过四至点提取模型,前两天有同事问怎么样按属性批量建数据库并对应输出相关图斑。比如将一个县的永农数据按乡镇建立数据库并将对应乡镇的永农数据输出到相应的数据库里。今天就介绍一下相关的模型构建过程。

weixin_44671081的博客 519

【INMP441】 MEMS麦克风,让硬件“听得见”,更要“听得清”

INMP441是一款数字MEMS麦克风,采用PDM接口输出高质量数字音频信号。相比传统模拟麦克风,它具有高度集成、抗干扰强、功耗低等优势,支持通过时钟启停实现软件控制开关。该麦克风体积小巧但功能强大,内置MEMS传感器、ADC转换器等模块,适合智能音箱、语音遥控等应用。工程师可通过ESP32等主控芯片轻松连接INMP441,利用多麦克风阵列实现波束成形等高级功能。INMP441展现了数字音频采集的先进技术,为创客和智能硬件开发者提供了优秀的音频解决方案。

深耕CV 1538

找到bug的根源,问五次为什么

在学习《问题分析与解决》时学到了一种找到问题根源的方法——问五次为什么。具体内容是:当遇到一个问题,不要只看当前答案,要继续往下问,为什么,连问五次,就能够找到更深层次的问题。 最近在复盘bug的时候,也使用了这种方法,屡试不爽。 案例 前端发布后,页面按钮点击失效,用户反馈问题,前端回滚代码后恢复。 问题一、为什么按钮点击会失效? 因为前端代码写出了一个bug,没有对空对象进行判空,导...

测试 398

Week 9 10 Neural Networks

Week 9 10 Neural Networks

金州饿霸吃不饱的博客 404

如何做bug分析 ?bug分析什么 ? 为什么要做bug分析 ?

软件测试bug

雨滴测试博客 2516

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Bug的由来,Bug为什么叫做Bug

Bug,翻译一般为虫子、昆虫,目前有道翻译我们可以看到如下示意: 现在很多行业里面,尤其是IT相关行业,经常会用到bug这个词,具体指什么呢,其实多指缺陷、漏洞、故障、错误等等。那为什么会用昆虫这个词来表示缺陷等含义呢?那就要从第一代计算机说起。 IBM 在1944年建造了当时最大的机电计算机之一:Harvard MarkⅠ,它是给二战同盟国建造的,有76万5千个组件,300万个连接点和500英里长的导线。这台及其最早的用途之一是给“曼哈顿计划”模拟。Harvard MarkⅠ有3500个继电器

AAAWell的博客 921

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

为什么bug越改越多?

一个软件写好了之后,过了一段时间再去看,它可能就不是你预期的样子了,可能早已经报了网关错误, 可能页面展示 500 错误,或者无法访问了。有很多原因可能造成这种混乱的状态,比如某个用户的操作触发了一个隐藏很深的缺陷,对程序造成了一个很小的修改,之后其他用户再进行了一些其他的操作, 也有可能是遭受恶意攻击等。 所以就算开发的软件已经接近完美,不再做任何修改和更新,你如果很长时间不去维护,软件也会变得越来越混乱。而在一个产品的实际研发过程中,我们还需要不停地为软件系统添加新功能,增加新特性,带来更多新信息,导致

TestNewton的博客 1068

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

你可能不知道的小知识-bug为什么叫bug

学了这么长时间的计算机,敲了很多行的代码,当然也很熟悉bug这个单词了。今天就来聊聊bug的来历。 (bug就是指是bai指电脑系统du的硬件、系统软件(如操作系统)或应用软件zhi(如文字处理软件)出错。) 在计算机发展的初期,它还是一个很庞大的机器,那时候的计算机还是由很多晶体管和继电器组成的一个占地几间房子的庞然大物。那时候有一位美国女科学家赫柏在工作的时候,突然机器停止工作了。他们就爬到机器上面找出错的原因,最后竟然是因为这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,因为飞蛾喜欢飞到发光和发热

githubcurry,985cs博士在读 3508

我为什么要帮你查 Bug?

作为程序员,在我们的日常 Coding 中,或多或少会在代码中隐留一些 Bug,但这些 Bug 看似无伤大雅,那是否还有代码审查的必要性? 作者 | Sophie Alpert 译者 |梁蕊 责编 | 屠敏 出品 |优快云(ID:优快云News) 以下为译文: 最近一个朋友问我,为什么做代码审查很有价值。大多数硅谷的科技公司都会对每一个变更进行代码审查,至少有两组人...

优快云资讯 4267

为什么BUG不被修复

为什么BUG不被修复

gdhjgfr的博客 234

为什么要提bug单?bug单的要素

为什么要提bug单? 1、bug容易漏掉,导致bug遗漏到客户那里 2、把bug录入系统,给开发提供bug解决的依据,哪些bug 要优先改、哪些bug可以先不修改、 3、把bug录入系统,方便开发定位这个bug,因为bug会记录重现步骤 4、把bug录入系统,方便测试知道哪些bug 需要修改但是未修改,哪些bug已经修改可以回归 5、提交bug,测试人员有成就感 6、把bug录入系统,是研发过程改...

m0_46482126的博客 2884

为什么提bug

bug是测试工作的主要成果,也是造成开发与测试矛盾的原因之一。有些同学会觉得测试过程中发现的一些问题直接亲自去找开发解决就好了,减少沟通成本,提高修复效率,不管怎样也不会影响项目进度;而测试则是不管大小,甚至还没有开发人员沟通,这是否有效地解决了问题。事实上,有效的 bug对于个人、团队、项目都是非常重要的。

weixin_43834893的博客 660

程序员为什么要一直写 bug ?

为了减少bug的产生,程序员会采取一系列的措施,如编写详细的文档、进行代码审查、编写单元测试和等。同时,他们也会不断学习新的技术和方法,提高自己的编程能力,以减少bug的产生。总的来说,程序员并不是故意写bug的,而是在编程过程中由于各种原因导致bug的产生。他们会尽力避免bug的产生,并采取各种措施来减少bug的数量和影响。

人邮异步社区 1961

为什么BUG是修改不完的?

BUG的存在是软件开发的常态,重要的是以开放的心态接受它,并通过合理的流程来管理和修复。正如程序员调侃的那样:“没有BUG的代码是不存在的,但充满BUG的代码一定是有生命力的。”拥抱不完美的过程,才是软件开发的真正乐趣所在。复杂的逻辑和大量的依赖关系使得软件中隐藏的BUG很难被完全发现。程序员常说:“软件开发是修复一个BUG,顺便再创造几个BUG的过程。即使经过了大量的测试,用户仍然可能触发意料之外的错误。软件开发是一个动态的过程,需求的不断变化使得代码也需要不断调整。那么,为什么会出现这样的情况?

2508_90222229的博客 925

被问:这个BUG为什么没测出来?该如何回答

一、前言 相信不少,应该说绝大数的测试同学都遇到过这样的场景,上线出现了BUG,被质问: 为什么没测出来! 测试怎么测得?到底会不会测? 这对测试来说则是灵魂拷问级别不好回答的问题了。 那么我们遇到类似这样的提问该如何回答、解决呢? (PS:觉得分享的不错可以点赞收藏评论一下,这是对我最大的支持!) 二、如何回答和解决 其实当遇到线上出现问题的时候,不管这个问题是谁的锅, 先以解决问题为主, 先复现问题, 再配合开发调试定位问题进行修复, 然后测试完成进行紧急的修复上线才是最应该做的事情! 这个时候也不要

曲鸟 1万+
上一篇: 修改别人代码的原则
下一篇: 解决bug的一些总结
小城码仔
博客等级 码龄18年 99粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值