程序員如何掌握Bug生產(chǎn)之術(shù)?
時(shí)至今日,筆者已有十余年的寫B(tài)ug經(jīng)驗(yàn),是時(shí)候與各位看官分享一下,怎么才能寫出Bug的心得了。

從某種意義上講,寫出Bug其實(shí)是一件并不光榮和光彩的事情,但是寫出一個(gè)影響巨大/潛伏性極強(qiáng)的Bug,然后再通宵達(dá)旦地去排查、去修復(fù)她,在你行云流水般的bugfix代碼下,還能收獲到領(lǐng)導(dǎo)/同事/測(cè)試妹紙的一波666,你會(huì)發(fā)現(xiàn),寫出這個(gè)Bug其實(shí)是一件很偉大、值得炫耀的事情。
總的來(lái)說(shuō),要寫出Bug,可以從以下幾個(gè)維度去思考:
1.測(cè)試是對(duì)自己代碼的不信任
程序員的天敵就是測(cè)試妹紙,為了能寫出更多的Bug,我們往往需要減少測(cè)試的數(shù)量,筆者也準(zhǔn)備了一些話術(shù)用于應(yīng)付測(cè)試妹紙:
- 這個(gè)功能很簡(jiǎn)單,不會(huì)有Bug的
- 這個(gè)功能是臨時(shí)用的,不會(huì)有用戶使用的
- 放心吧,我寫的代碼保準(zhǔn)沒(méi)有Bug
2.信任他人的實(shí)現(xiàn),有現(xiàn)成的絕不自己動(dòng)手
作為單純的對(duì)這個(gè)world只想說(shuō)一句hello的程序員來(lái)說(shuō),我們需要對(duì)這個(gè)世界充滿信任,當(dāng)遇到一個(gè)新的功能時(shí),首先打開(kāi)百度搜一下,看看別人的實(shí)現(xiàn),如果有現(xiàn)成的,絕不浪費(fèi)時(shí)間去檢查別人的代碼,如果別人的代碼有問(wèn)題,哪來(lái)的勇氣發(fā)文章呢?
我們需要信任第三方庫(kù),信任測(cè)試測(cè)過(guò)的代碼,信任用戶足夠聰明一定會(huì)按照我們的要求來(lái)傳遞數(shù)據(jù)。
3.所有代碼穿上try-catch外衣,拒絕暴露
Bug是令人十分討厭的,針對(duì)Bug我們有很完美的操作可以避免:
那就是在編碼的過(guò)程中多使用catch Exception{ignore();},通過(guò)這樣簡(jiǎn)單的處理后,所有的接口都能完美運(yùn)行,客戶也不會(huì)看到天書(shū)般的Bug日志,說(shuō)不定通過(guò)這個(gè)操作,就像學(xué)生時(shí)做的數(shù)學(xué)題呢,也許過(guò)程錯(cuò)了,但是結(jié)果是對(duì)的呀。
4.配置個(gè)性化的開(kāi)發(fā)環(huán)境

開(kāi)發(fā)環(huán)境永遠(yuǎn)永遠(yuǎn)不要與生產(chǎn)環(huán)境保持一致,因?yàn)樯a(chǎn)環(huán)境一般是Linux系統(tǒng),Linux系統(tǒng)實(shí)在是無(wú)趣,沒(méi)有彈窗廣告,沒(méi)有微信,沒(méi)有QQ,只有黑色與白色。
只有windows/macos這樣的操作系統(tǒng)才適合用來(lái)當(dāng)我們的開(kāi)發(fā)環(huán)境,因?yàn)樗麄兛梢耘渲貌煌闹黝},可以安裝好看的字體。如果碰上測(cè)試給你報(bào)了一個(gè)疑似Bug的時(shí)候,你可以通知她到你這里來(lái)看一下,可以自豪地說(shuō):"我這里是好的,是你操作的問(wèn)題"
當(dāng)你熟讀本文,掌握Bug生產(chǎn)之術(shù)后,你只需勤于加班,定能掌握Bug生產(chǎn)之術(shù)。