如何證明程序沒有bug?
網(wǎng)友解答: 正常情況下:bug不是人們有意寫的,bug其實(shí)是程序員犯的錯(cuò)誤。首先,我們把bug分類,不同的類型的Bug,不同的處理方式。盡量照顧到了,Bug就會(huì)少很多。1.特殊需求。特殊
正常情況下:bug不是人們有意寫的,bug其實(shí)是程序員犯的錯(cuò)誤。
首先,我們把bug分類,不同的類型的Bug,不同的處理方式。盡量照顧到了,Bug就會(huì)少很多。
1.特殊需求。
特殊需求不算是bug,但是可能因?yàn)橛行┨厥獾囊?,?dǎo)致代碼復(fù)雜度快速上升,而且重新架構(gòu)之后,依然無法簡(jiǎn)化代碼結(jié)構(gòu)。這個(gè)就要和提出需求的人討論下,看看如何改進(jìn)需求。在完成功能的情況下,降低代碼復(fù)雜度。
2.邏輯性Bug。
比如數(shù)值轉(zhuǎn)換錯(cuò)誤,算法錯(cuò)誤,計(jì)算結(jié)果不對(duì)等等。這塊就是考驗(yàn)開發(fā)人員自身功力,特別是理解需求和耐心以及細(xì)致了。全看個(gè)人了。繞不過去,提升自身能力為上。
3.框架和框架應(yīng)用Bug有些框架本身自帶bug,被代碼觸發(fā)之后,是修正還是繞過去,完全看具體的情況了。框架應(yīng)用bug,因?yàn)閷?duì)框架的某些技術(shù)細(xì)節(jié)不熟悉,胡亂用框架代碼導(dǎo)致的bug?;蛘叽a需求已經(jīng)超出框架設(shè)計(jì)初衷了。要么仔細(xì)學(xué)習(xí)文檔,要么繞行。
4.外部環(huán)境變化引入的Bug
舉個(gè)例子來說:網(wǎng)絡(luò)服務(wù)器的開發(fā),一般的開發(fā)環(huán)境都是高網(wǎng)速的局域網(wǎng)中,實(shí)際部署之后,可能會(huì)遇到極低網(wǎng)速連接情況??赡軙?huì)引發(fā)在高速網(wǎng)絡(luò)開發(fā)環(huán)境中無法發(fā)現(xiàn)的Bug。數(shù)據(jù)庫連接也是同樣的問題,高負(fù)荷生產(chǎn)數(shù)據(jù)庫和低負(fù)荷的開發(fā)服務(wù)器的不同,會(huì)帶來一些bug這樣的不可預(yù)料的偶發(fā)Bug,只能是記錄好關(guān)鍵日志,以備后查。