成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

沒有解不了的bug,只有追不到的女神

新聞
我們程序員的成長史就是與bug的斗爭史,每天重復著寫bug、解bug。俗話說:沒有解不了的bug,只有追不到的女神。

[[396962]]

大家好,我是良許。

我們程序員的成長史就是與bug的斗爭史,每天重復著寫bug、解bug。俗話說:沒有解不了的bug,只有追不到的女神。

不僅菜鳥不斷埋雷,老司機也在創造bug,只是頻率略低。

當然了,即使你是老司機,代碼寫的溜溜的,在團隊作戰時也難免被團隊成員拉下水,在特殊時期被迫上陣測試bug。正所謂,不怕神一樣的對手,就怕豬一樣的隊友。

既然bug是不可避免的,大神的升級之路也少不了它的豐功偉績,那當程序出現bug后,要如何進行調試。且看我十招降龍十八掌解Bug法,比追女神的方法更管用。圖片

首先,調整心態

人人都會出bug,bug是無法避免的,所以千萬不要覺得,我出現了bug,就說明我比較菜(雖然自己確實比較菜)。

雷軍,馬化騰,李彥宏,張小龍,他們都寫過無數的bug,出險bug是一件很正常的事。千萬不要有太重的心理負擔,平常心對待即可。

[[396963]]

其次,想辦法復現bug

如果自己復現不了的話,可以找測試人員幫忙。如果bug能夠穩定地復現,那么幾乎可以斷定,這個bug是肯定可以解決的。

最讓人頭疼的是偶然出現沒辦法復現的bug,如何解決這種神奇的bug我們等下再說。

第三,仔細分析現象

對照需求文檔,看看程序正確的運行應該是怎樣的狀況,再對比bug出現的現象,我們一般可以大致定位出來是哪個部分出現了問題,再對那個部分進行深入分析。

第四,查看日志文件

日志文件是非常重要的一個文件,記錄了程序進行過程中輸出的各種結果,同時也記錄各種各樣的報錯信息。所以你分析報錯信息,再結合報錯點上面及下面一些正常的log,一般也可以定位到對應的代碼位置,甚至直接就可以解決bug了。

這就要求我們平時在寫代碼時,一定要多留個心眼,把可能出錯的地方多寫一些log,特別是if...else,try...exception,這類程序異常運行的地方多加一些log。

雖然寫這些log的時候可能會多花點時間,但在代碼出現bug的時候可以給你省下很多調試的時間的。

第五,網絡上查找解決方法

其實很多bug也有其他程序員碰到過,所以如果你實在分析不出原因的話,直接網上搜索解決方案。推薦google,stackoverflow,bing,最后再用百度。

搜索時,建議盡量用英文,這樣搜出來的結果會更多,并且不少會是非常詳細的解答,非常有助于bug的解決。

第六,注釋法

如果你實在沒有思路,那可以采用注釋法來排查。所謂的注釋法,就是你把你寫的類、函數、模塊,等等你認為有可能出現這個bug的部分,一個個依次注釋掉。

每注釋一部分,編譯運行,看看bug有沒復現,有復現的話繼續再注釋其它部分,直到bug不再出現。這樣就可以確定bug出現在剛剛注釋的代碼里,再慢慢把注釋的代碼打開,就慢慢縮小了范圍,然后就能排查出問題了。

這個方法是當年我的一個主管教我的,我覺得非常實用,現在分享給大家。

第七,斷點調試

這應該是很常見的一種調試方法了。你可以在代碼可能出錯的地點打上斷點,然后再運行代碼,看看程序會在哪一行出錯。這種方法簡單實用,效率也非常高。

第八,增加日志

對于一些不方便進行斷點調試的場合,比如說我所從事的Linux應用開發的場合,一般我們寫完程序編譯后就直接丟到Linux平臺上運行,如果要調試的話需要用到gdb,但很不方便。

所以對于我個人來講的話,我幾乎沒用過斷點調試,我用的方法就是在代碼里可能出錯的地方,人為地再增加幾個log,或者把一些對應的變量的值用log打出來。然后通過已有的log及新增的這些log,就可以排查出來問題點了。

這種方法雖然說不是很高效,但用這種方法一般要先分析代碼,再打相應的log,可以鍛煉在大腦里直接運行代碼的能力,久而久之也會提升代碼水平,后面調試的速度也會越來越快。據說,大神都是偏愛這種調試方法。

第九,code review

如果你上面的方法都沒辦法解決bug,或者你的bug根本就沒辦法復現,那么你就可以組織一場code review,讓組內的成員一起來找茬。一個人的力量有限,但一群人加起來就會有無窮的力量了。通過一群人來群毆你的代碼,很可能就會找到這個bug的根因了。

[[396964]]

第十,請教老程序員

俗話說,不懂就要問。所以,你如果實在解決不了bug的話,可以去請教組里的老程序員。老程序員一般經驗比較豐富,他們有可能根本不需要調試,一眼就看出你的問題點。所以,平時有事沒事一定要跟老程序員搞好關系,到時候請他們幫忙的時候就好開口了。

但是,千萬不要太依賴老程序員,即使他們幫你解決了問題,你也一定要自己去想一下,他們是怎么解決你的問題的,使用了什么方法什么技巧?只有這樣做,你的技術才會得到提升。

最后,再推薦一個國外很流行但國內很小眾的方法,小黃鴨調試法

所謂的小黃鴨調試法,并不代表小黃鴨會幫你解bug,而是你在調試代碼的時候,手拿一只小黃鴨,然后詳細跟小黃鴨講解你寫代碼的思路,以及每一行代碼的意義。

這樣講著講著,突然就會靈光一現,找到問題點了。這種方法看起來有點傻,有誰會對一個玩偶嗶哩叭啦講代碼,所以我估計這也是小黃鴨調試法在國內流行不起來的原因。

如果你覺得這樣很傻的話,可以拉一個同事過來,向他講解代碼。或者你也可以自言自語,講著講著,你就可能找到解決方法了。

 

好了,以上就是我給大家推薦的幾種bug解決方法。這些方法都是非常實用的,如果一種方法行不通的話,可以用其它方法來解決,甚至使用多種方法一起來解決問題。

 

責任編輯:武曉燕 來源: 良許Linux
相關推薦

2015-05-05 11:00:13

大數據時代創意

2013-08-08 10:20:39

大數據

2014-07-31 15:44:42

搜狗管理BugCynthia

2010-03-19 09:27:04

云計算思科HP

2012-07-11 10:38:34

JavaScript

2020-05-19 15:00:26

Bug代碼語言

2024-04-25 08:16:06

InnodbReadMVCC

2015-09-11 11:13:15

可穿戴設備

2019-07-01 14:39:44

Jupyter擴展Python

2020-09-23 16:55:43

C語言編程語言

2022-08-05 13:03:09

Python依賴管理代碼

2017-12-11 09:27:14

2016-01-18 10:49:51

浪潮SAP

2015-11-09 17:01:45

AfterShokz

2022-11-26 10:14:48

Zookeepermybatisspring

2015-07-16 14:02:52

大數據壞數據

2012-08-10 11:00:10

4GLTE

2010-05-12 14:04:50

2018-10-22 14:00:12

數據數據插補數據科學

2022-12-27 10:02:38

MVCC機制Innodb
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区免费视频 | 国产亚洲精品久久久久久豆腐 | 国产欧美精品一区二区 | 国产97碰免费视频 | 久久国产一区二区 | 伊人春色成人 | www.狠狠干 | 天天干夜夜操视频 | 伊人网国产 | 亚洲电影一区 | 黄色毛片在线播放 | 日本人做爰大片免费观看一老师 | 成人三级av| 国产香蕉视频在线播放 | 欧美日韩综合一区 | 欧美一级免费看 | 日日操操 | 亚洲精品在线视频 | 视频在线一区二区 | 国产韩国精品一区二区三区 | 国产精品久久久乱弄 | 亚洲精品在线观看网站 | 超碰操| 91在线网站| 久久精品亚洲 | 在线观看不卡av | 欧美性video| 国产精品免费视频一区 | 亚洲日韩中文字幕一区 | 欧美日韩视频在线播放 | 日韩高清中文字幕 | 91免费高清 | 久草综合在线视频 | 超碰免费在| 日韩在线视频一区二区三区 | 在线成人免费视频 | 亚洲高清在线视频 | 欧美视频成人 | 欧美日韩亚洲一区 | 日韩中文字幕在线视频观看 | 日韩欧美国产成人一区二区 |