程序员遇到百度不出来的bug都是怎么解决的?
程序员遇到百度不出来的bug都是怎么解决的?
-----
网友解答:
-----
我做开发20年,百度解决不了不超过十个难题。不过很多是基于经验的积累,一些稀奇古怪的bug是这么解决的,就是第二天早晨起来就想到解决方案了
-----
网友解答:
-----
没有编程问题是stack overflow和Google解决不了的,假设你在编程中遇到了问题,你自己解决不了、你周围的的人都解决不了的时候,我觉得stack overflow、Google是你最好、也是最后的帮手。
没有什么问题是Google、stack overflow解决不了的
作为一个程序员,我觉得Google、stack overflow是你必须要学会使用的两个工具,这两个工具本身并没有使用门槛,只不过因为一些众所周知的原因,很多人不能使用Google和stack overflow这两款工具。
Google主要还是方便,而且很多编程问题都需要用到英文搜索,当然现在百度在专业能力上也提升明显,不过跟Google也还是有比较大的差距,因此我还是强烈建议要学会使用Google,这会帮你在工作、学习上事半功倍。假设Google确实因为某些原因没办法很好的使用,我也建议你至少要会使用Bing搜索。
现在可以说stack overflow上没有你找不到的问题了,从IDE环境安装问题,到各类编程语言问题。算法问题,数据结构问题,调试,重构等等,几乎这里就没有你找不到的答案,可以说在stack overflow上你可以找到任何解决方案,并且上面的回答者基本上都是非常有经验,而且都是实际中遇到的问题分享出来的,这个工具一定要会使用。同理,除了stack overflow这个专业的垂直程序员问答社区,你也可以使用Quora这个综合问答社区,这上面也能找到很多问题的答案。
程序员常用工具集介绍
一些比较优秀的文本编辑器:Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。
一些比较非常出色的IDE集成开发环境:visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。
macOS平台比较好的第三方包管理工具:Fink,Macports,Homebrew等。
一些比较好的终端工具:Zoc7,iTerm2,Cmder,terminus,hyper等。
一些比较好的笔记软件、markdown工具、效率工具:Evernote,有道云笔记,为知笔记,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。
虚拟机软件、容器软件:Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。
-----
网友解答:
-----
那天晚上,老刘挠破了头,都没有解决这个bug,最后还是我的一个举动,解决了他的bug,竟然让这个大佬向我投来敬佩的眼光。
老刘是我们公司的资深程序员,我们一直很敬佩他的为人,以及工作态度,常常加班到10点才下班。但是最近遇到了一些bug,总是没有思路,或者说可能是太累了。
昨晚夜晚9点多,公司已经空无一人了,老刘工位的灯光却还在亮着,我刚好有事没走,就到老刘的位置上,看他到底在干嘛,把手搭在他的肩膀问他:“这么晚了,怎么还没走?“
老刘似乎被我吓到了,缓过神来说:“唉,还不是这个bug,一直浮现出来,就是不知道哪里出了问题。”
我安慰着他说:“别灰心,一步步看是哪里出了问题?实在解决不了,明天上班再搞嘛。”
老刘一口否决了我:“不行,今天的bug必须今天解决,不然明天也解决不了。”
我看到他这么坚定,也不好说什么,就帮他泡了杯茶,拉了一张椅子过来,和他一起研究这个bug怎么出现的,还有老刘解决不了的bug?
老刘可能是太累了,茶都还是热的,一口就喝了下去。我当时就惊呆了,问他:“你没发现这茶是热的吗,你就一口闷了?”
老刘不想理我,说:“别吵,我好像有思路了,这个bug时而出现,时而正常。”
我看着老刘入了神,知道的以为他在解决bug,不知道的还以为他在和电脑说话呢,要是关灯的大叔看到他这样,估计会被吓得不轻。
时间一分一秒地过去了,我一直从9点陪他到了11点,我都差点睡着了,突然老刘哈哈大笑了起来说:“我好像找到这个bug出现的原因了。”
我被他的哈哈大笑给惊醒了,问到:“什么原因?”
他自言自语地说:“好像是这样,又好像不是这样,到底怎么样才能解决呢。”
我看他这样子肯定又是没想出来,要是想出来早就开干了,还能对着电脑自言自语?怕不是脑子可能有问题了,一会我还要带他去医院检查检查。
我睡不着了,跟着他一起研究这个bug几分钟出现一次,监控日志到底打印了什么玩意,是不是有什么死循环再跑?
就这样又到了凌晨12点,我有点熬不住了,扭了扭老腰,伸了伸腿,突然“啪”的一声,老刘电脑关机了,原来我这腿踢到了他的电源键。
老刘差点晕过去,好多文件没保存下来,有种想掐死我的冲动,重新开机的老刘又哈哈大笑了起来说:“原来是这样,我终于明白了,是我想的太复杂了,我真蠢啊。”
我一脸懵逼,老刘到底明白了什么?怎么会笑得这么开心?我把他电脑给踢关机了,脑子也被我踢坏了?
老刘站起来,伸了伸懒腰,似乎没有一点生气的样子,连我这个旁边者都炸毛了,老刘怎么像个没事人一样。
老刘洋溢着笑容对我说:“走,我们去吃夜宵去,我请客。”
我好奇地问到:“我把你电脑踢关机了,你怎么还那么开心?难道就不解决bug了?”
老刘拍了拍也得肩膀说:“你还是太年轻了,bug都是睡一觉起来就好了,吃夜宵要紧。”
第二天,我看到老刘早早的就到了公司,我问他:“昨晚的bug,你是怎么解决的?怎么我一脚给你踢关机了,你还这么开心。”
老刘所有所思的样子,说:“没有什么bug是不能重启解决的,如果一次不行,那就重启两次就好了。”
我为老刘的乐观的态度逗乐了儿,我知道老刘其实早早地来,就是为了解决bug,昨晚只是不愿意让我陪他在待下去了,找个借口好让我们两下班。
作为一名程序员,平时如果遇到百度不出来的bug都是怎么解决呢?我分享几个经验:
程序员不仅仅用百度,还有谷歌
现在百度太多杂乱无章的博客了,虽然能解决大部分基础的bug,但是如果遇到一些框架底层源码出现的bug,就需要使用谷歌了,会用谷歌也是作为程序员必备的工具。
百度找不到的答案,那就凭借经验判断
如果你有足够阅读底层代码的习惯,那么解决一些奇异的bug的时候,就游刃有余,不要以为常用的框架就没有bug了,bug就摆在眼前,你总不能不信吧,那么就需要凭借你解决问题的思路。
从为什么会产生这个bug,bug是什么条件下才会出现,又该到底怎么解决这个bug,经验都是从解决一个又一个的bug积累的。
不仅仅要回Debug,要更加的学会利用工具
作为一名程序员,我想应该没有人不会debug吧,如果百度不出来,那就一步步的打断点,程序都是 一行行的代码跑的,debug到哪里,就很容易定位问题,并且解决问题。
如果debug解决不了的,一定要善于利用现有的工具,例如内存溢出之类的,你就要用到工具来判断为什么内存会溢出,该怎么解决。
实在没办法了,那就关机重启
没有什么bug是不能用重启解决的,一次不行,那就两次,说不定你会得到意想不到的效果,相信我,重启出奇效。
在最后想说:
作为一名程序员,不要害怕解决bug,反而bug是提升一个人能力最快的办法,积累经验的磨砺,没有哪个程序员敢保证自己写的代码bug。
bug不可怕,可怕的是你连面对它的勇气都没有,那我劝你还是不要做程序员了。
-----
网友解答:
-----
笔者不同意下面网友的回答。程序员如果解决bug的水平停留在百度,那么本质上只是一个“面向搜索引擎的代码搬运工”,是不合格的程序员。
程序员对面bug,正确的“打开方式”是像福尔摩斯和柯南那样,寻找线索、运用逻辑推理来缩小问题可能的根因范围,最终精准定位。
常用的方法有:
1. 坏境上下文变换法
2. 工具调试法
3. 版本回溯对比法
4. 代码审计法
……
-----
网友解答:
-----
面对IT行业高薪的诱惑,越来越多的人选择了程序员这个职业,同时也导致市场鱼龙混杂,甚至你在工作中经常会发现很多同事都是在“面向百度”编程。那么,一旦百度无果后,又该如何呢?
1、尝试换个思路,不要一条道走到黑
网上有这么一个段子:
有一次写JS,自己手机没电了,拿同事老张的安卓机调试,很简单的获取用户微信昵称,结果死活获取不到,一直显示为null。应该是跨平台问题,因为之前在自己iPhone上是没有bug的,拼命看api文档,但是都没提到这方面。急死我了。......刚刚老张告诉我他的昵称就是null......
其实很多时候,调Bug就跟玩找茬游戏一样,我们要有一个思维活跃的大脑,关闭电脑,走出办公室,抽根烟放松放松,也许在那个不经意之间你已经知道Bug所在了。
2、Googling the Error Message
学会科学上网,作为一名程序员,遇到专业性质的问题,如果你的第一反应还是百度的话,那么可能就不太合格了。一般在没有任何头绪的时候,我会首先选择去Google查找解决方案。千万不要告诉我你不会用Google。
3、Copying and Pasting From StackOverflow
如果还Google还不能解决我的问题的话,我会试着去这里提问,这个网站汇集了全球最优秀的最热心的程序员,基本上你的每一个提问都会有人耐心给你解答。甚至可以说,基本上你能遇到的90%的问题都可以在Google或者StackOverflow找到解决方案。
4、小黄鸭调试法
如果还是无果的话,只能祭出我们解决Bug的绝招——小黄鸭调试法。
首选,买一个小黄鸭,某宝上一搜一大把,注意体积不要太大,就像下图这样就OK了。
其次,将这只小黄鸭放在你的电脑屏幕跟前,最好面对着你。
再次,打开编译器,找出有问题的部分,用手指着代码,一行一行的给你的小黄鸭解释一下这行代码的作用,为什么你要这么写。
最后,问题应该解决了吧。
------------------
推荐阅读:
亚洲一小国,男人可娶4个老婆,买地建房只要1元,看病上学都免费,你怎么看?