⑴ bug是什么意思,世界上第一个bug是什么,bug为什么不能彻底消除
在今天的生活中,我们享受着科技和网络带来的便利,但是随着碎片化时间的增加,我们沉浸在网络中的时间越来越多,久而久之就形成了很多网络热词,bug就是其中之一。那么bug是什么意思呢?原指计算机系统或软件中的错误,现在也可以形容某些人。
bug最早出现在计算机中,这是计算机网络中的一个技术术语。最初,他们所指的“bug”是指计算机网络、系统和软件出现错误,影响正常运行。有些黑客还可以通过bug攻击网络,这是不可避免的,所以bug成为了很多程序员头疼的问题。
bug也可以用来形容人和那些天才。我们和这种天才的差距太大了,所以是一种bug,一种褒义词,指的是那些能力非凡,或者行为滴水不漏,让我们害怕的家伙。
以上是对bug是什么意思的解释,bug指的是计算机中出现的错误,或者那些非凡的天才。
⑵ 程序员不喜欢什么,在广州蓝景做开发的朋友说,他不喜欢加班改别人的bug,你们呢
程序员最讨厌不确定性。
Debug的时候,在怪异再棘手的问题,只要可以稳定重现,都迟早可以解决。“稳定重现”的意思是只要按一定的步骤做下来,问题就可以重演。
最讨厌的就是那种时有时没有,不知道什么时候出现的bug。改了代码不知道有没有效,也不知道是否引入了新问题。可以把码农逼疯。
引入到生活中对人对物的态度也是一个道理。无缘无故发脾气又不说为什么的女朋友,言而无信说到做不到的人,约好的事情被放鸽子... 这些都是不确定性。
程序员对不可控的不确定性因素也是有解决方案的。在代码里头把异常try-catch-finally一下,做好补救收尾,在加上几行注释警醒后来人这里别乱动。对随机发生的问题,对应方案就是假设这里永远都会有问题,把随机的行为转化为降格的确定行为。就比如随机发脾气的女朋友吧,就会放弃研究发脾气的原因,不求治本,而是假设她永远会发脾气,专注“哄”的工作也就是catch里面的内容。
⑶ 互联网前辈总是说“bug是改不完的”,新入职的程序员该怎样应对bug
互联网前辈总是说“bug是改不完的”,新入职的程序员应对bug:
⑷ 程序员怎么样保证自己的程序没有BUG!
但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。 1. 影响了程序员自己的声誉 2. 影响了产品的质量 3. 影响了客户的信任度 4. 这个时候再 DEBUG 难度增大了许多。 大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。 程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。 仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。 编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。 单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。 功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。 如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW 。 前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。 作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。
⑸ 北大青鸟设计培训:程序员在Bug面前的反应
开发应用程序过程中一定会遇到bug,这是很正常的事。
程序员会有各种反应:生气,沮丧,郁闷甚至泄气,也有一些程序员会比较淡定。
怎么修复bug,解决问题,也是一项技能。
下面北大青鸟http://www.kmbdqn.cn/来分享程序员在bug面前反应情况。
当氛围变得紧张的时候,这些话就会显得轻松幽默。
最终,bug也会修复成功,你将会继续下一个任务。
我相信许多web开发人员和程序员在编程中都会遇到困难,而事后回想起来,会觉得很好笑。
程序员在bug面前反应情况1、我不知道该删掉还是重写看这些曾经的代码也别想重写,逻辑性差,冗余代码多,让人难以理解。
B不过,如果功能没出现问题,千万别去修改。
2、一开始架构时就该查GithubGithub上面每天都会发布的一些神奇的开源项目。
所有语言的程序员都会利用网络,为已存在的项目创建分支,添加项目wiki描述,或者创建自己的代码库,这些都为各种各样的项目的插件和模板提供了丰富的资源。
3、为什么这个脚本要依赖这么多库说到一些越来越被广泛使用的计算机语言,像Java和Objective-C,库文件的数量也不断增加。
明显能看出,构建一个框架需要许多基础库,一些JavaScript插件也要大量的附加文件。
4、网上一定有解决办法遇到困难时,第一反应是上网查资料,很多程序员会在论坛上发布他们的问题,最终这些问题都会被解决并存档。
Google会很神奇地选择一些跟你的问题相关的关键字,就能够轻松得到一些有帮助的信息。
不过,有时一些特定的问题,相关的信息并不多。
5、有这个功能的插件吗何必多此一举,插件是扩展任何程序或者网站用户接口的很好的资源。
另外它们还为开发者提供了一些定制及独特的选项。
6、对于网站项目,好担心InternetExplorer使用IE渲染网页遇到的各种困难,我就不提了,从5。
5版本到IE9-IE10,对于浏览器的支持问题的争议就一直不断。
Web开发员很害怕网页调试,使用IE6进行渲染更是噩梦,幸好那已成为历史。
⑹ 为什么有的程序员的代码结构混乱
程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们决不会满足于简单的增量劳动。
或许这种微妙的心理定位可以解释:为什么程序员进入新项目组后宁愿丢掉旧代码重新写,也不愿意修修补补。他们认为旧代码简直一团糟。
但是,事实上真是这样吗?你之所以认为旧代码一团糟,其实是由编程的一个基本定律决定的,那就是:写代码容易,读代码难。
为什么你觉得旧代码异常混乱?因为读代码更难。
这大概就是代码Reuse难以实现的原因。 这就是你组里的每个人都喜欢用不同的功能将分割的字符串转换成一个数组。比起猜测旧的功能是怎样实现的,重新写一个自己的功能要简单和有趣多了。
作为这个公理的推论,你可以问问身边的程序员他们正在奋战的代码怎么样?“简直是一塌糊涂!”他们肯定会这样说。“我简直想推倒重来!”
为什么认为代码这么糟糕呢?“额,看看这个功能,竟然有两页长!完全不知道这些东西为什么在这里!完全不知道这些API是干什么的。”他们会这样回答你。
漫画:读别人代码是一种怎样的体验?
曾经,Borland的创始人 Philippe Kahn当初就是向记者们吹嘘:Quattro Pro会比Microsoft Excel要好用得多,因为它是从头开始编写的,全部都是新的源代码!
但是,认为新代码比旧代码好简直就是荒谬。旧代码是已经运行过的,测试过的。无数的bug在被发现前都上线运行过,发现之后程序员们可能在花了好些日子才修复了这些bug。这种修复可能是一行代码,也可能是几个字符,无数的时间和精力都花在了这些bug修复上。
当你决定抛弃这些旧代码从零开始的时候,你也丢掉全部前任努力的结果。
新代码一定比旧代买好?NO,重写可能会带来更大的风险。
对技术领导者来说,重写项目的代码也是一个异常艰难的决定。因为从公司层面说,重现代码甚至会威胁产品的市场竞争力。一旦决定重写代码,那么与竞品相比,你可能落后了2~3年——在软件行业,这时间可够长的。
你理想中的新代码会带来产品功能的提升▼
但事实上,即便重写的新代码可以实现旧代码的所有功能和需求,但是为产品带来的市场竞争力只有边际提升。因为重写用的新技术、新语言、新框架并没有给产品带来质的飞跃。
更不用说在重写的漫长过程中可能会遇到一些意外情况,比如:
1、缺钱:资金链的断裂▼
2、缺人:核心程序员离职
最终导致效果不佳:达不到原产品应有的所有功能和需求,白白浪费了时间和金钱,也丢掉了市场竞争力。▼
所以重写代码意味着,你在把自己置身于非常危险的境地,可能几年后你也写不出比以前更好的代码。你只是花了一大笔钱把已经存在的代码又写了一遍。
当你觉得眼前的旧代码很烂时,该怎么办?
你觉得旧代码写的很烂,那又怎样呢?它们已经上线,已经在实际运行中经受住了考验。所以当你发现前任留下的代码乱七八糟的时候,不妨冷静下来,从以下三个方面入手理解代码、改善代码:
1、代码的结构有问题
如果一段网络代码突然弹出了自己的对话框,应该是UI代码需要被处理。这些问题可以被解决掉,你要一次次小心地移动代码,重构,改变接口。还需要一位细心的工程师立马仔细地检查这些改变是否有问题,从而不打扰到其他人。事实上,甚至比较大的结构变化也可以不扔掉代码来完成。
大牛程序员Joel Spolsky回忆说,曾经在某个项目中,他和他的团队花了好几个月重新架构在一点上:把代码动来动去、清理、创建有意义的基类,并创建了模块之间的完美接口。但是他们始终非常小心翼翼,并没有产生新的bug、也没有丢掉任何旧代码。
2、代码的效率不高
曾经,Netscape的渲染代码被传非常缓慢。但事实上,这只会影响该项目的一小部分,这部分是你可以优化甚至重写的。你完全不必重写全部代码。优化速度的1%工作量,会让你获得99%的爆炸性提高。
3、代码写得很丑
有些代码真的写的很丑,比如Joel曾参与一个项目,开始用下划线做开始的成员变量约定,但后来改用更标准的“M_”。所以一半的功能用“_”开始,一半用“M”开始,这看起来真的很丑陋。但这个问题5分钟就能解决,而不用从头开始写全部的代码。
最后,你要记住,从头开始再写一遍并不意味着你会写出比以前更好的代码。因为你没有参与到上一个版本的创建,所以你其实根本就不算有经验。一旦你准备推倒重写,你可能会再犯一遍版本一犯过的错,甚至会产生更多的新问题。
一个总结:
面对糟糕的旧代码,Keep Calm & Carry On !
在大型商业项目中,推倒重来是非常危险的行为。当然,如果你是在做实验,想到新算法可以随时重写。
⑺ 程序员发现 Bug 的时候是怎样一种心境
我觉得程序员发现bug,应该就有一种学霸发现做错了一道题的感觉,根据这张题出现在自己试卷上还是出现在别人试卷上应该是有不同的心情的,下面就程序猿的心情来简单聊一聊。
有时候觉得程序员真的是很牛逼,那么一大串外星文字写出来,真是完全看不懂,人家还能一心二用,一边写程序,一边看小说。