老碼農的自我修養 為什麼會有BUG?過來人告訴你!

2021-10-20 09:10:12 字數 2138 閱讀 4786

一、為什麼會產生bug

首先我們需要嘗試理解一下什麼bug?

關於bug的解釋

bug 是指任何電腦程式或硬體系統中的錯誤,故障或缺陷。錯誤會產生意外結果或導致系統意外執行

簡單來說:bug就是程式出了問題,產生了意外的結果,沒有按照預期的結果去執行。

產生bug的原因有很多種:

開發者水平太低

不同的編譯及執行環境

與需求方溝通不到位

馬虎大意、考慮不周

放飛自我,coding全靠自嗨

選擇了錯誤的或者執行不穩定的第三方庫

以上原因總結,主觀和客觀因素都會影響到bug的產生,正如誤差不可避免一般,我們應該對自己寫出的**進行測試、分析、"溝通".

二、如何盡量避免bug

鑑於以上bug產出的原因,我們可以通過這些一些對策來避免bug的產生,下面是一些常見原因分析和處理對策。

1.開發者水平太低

在進行系統的構建中,部分開發者可能通常因為開發經驗過少,或者語言不熟悉,會編寫錯誤的**,然後未經過**測試和審計,便進行提交和上線操作,導致了異常的引發

解決方案:

如果是語法錯誤,可通過一些ide的**檢測器,或者語法檢查來檢測**可否正常執行.

如果是php等弱型別語言,可使用靜態**掃瞄工具來發現程式中明顯的語法錯誤.

編寫足夠的測試用例,覆蓋整個模組的語句

請求你的夥伴進行codereview(**審計),來改善**的質量和發現**中的缺陷

2.不同的編譯及執行環境

因為業務的拓展和服務支援,需要部署多個不同的執行環境中,如:轉賬系統,你在測試環境中轉賬了1000元給使用者小明,小明卻在生產環境中收到了這1000元,並成功進行提現,往往因為沒有環境判斷,導致了失誤的操作!

解決方案:

1)在**中多進行注釋說明,標明哪些函式會在其他環境中操作和執行

2)加強環境邏輯判斷

3.與需求方溝通不到位

這是經常程式設計師與產品對撕的乙個很重要原因,ta想要a,而你卻做出了b,於是你們產生了很大的爭論

解決方案:

多進行溝通,需求進行反覆確認,不要上手就進行編碼,先進行分析。

通過pm系統,留存需求規劃與變更記錄,以便每一次業務更改,都得能與系統中的問題對上號.

4.馬虎大意、考慮不周

編碼時以為問題很小,修改**,不走除錯與測試流程,直接上線。

解決方案:

不要盲目過於自信,相信自己的主觀判斷,,一定走測試流程,確保改動無誤!

codereview(**審計),這是乙個最好的辦法,當然需要耗費不少的人力,但是能最大的去降低缺陷和錯誤。

三、多與**進行"溝通"

「橡皮鴨除錯法」是我在閱讀《編寫可讀**》一書中看到的乙個技巧,我在乙個人開發的時候會使用這個技巧,我認為是乙個不錯的選擇。

四、總結

我們為什麼會編寫bug,如果沒有bug?開發和測試不就失業了嗎?當然這只是一句玩笑話。

在此引用知乎上一句很有意思的話。

編碼也亦如此,因為很多主觀和客觀的因素,導致程式執行了錯誤的邏輯,產生了不如預期的結果,作為乙個合格的開發人員,我們應該盡力確保程式穩妥執行,減少失誤和異常。

另外如果你想更好的提公升你的程式設計能力,學好c語言c++程式設計!彎道超車,快人一步!筆者這裡或許可以幫到你~

免費學習書籍:

免費學習資料:

為什麼「碼農」需要自我營銷?

你有去過酒吧夜店看過駐場樂隊的演出嗎?那些樂隊的演唱水平絲毫不亞於原唱的藝術家們。你有沒有想過,為什麼這些樂隊就只能在小小的夜店裡做駐唱演出,而有些 才華並不比他們高多少的流行樂隊就可以在全世界巡迴演出,創造著乙個又乙個白金紀錄?很明顯,兩個樂隊都很有才華,但是在生活中,僅僅擁有才華是遠遠不夠的。偉...

碼農的自我修養之必備技能

作為一名程式設計師,打字能力是基礎而又不可或缺的技能,十指打字 準確率 速度,二指禪是要不得的,這勢必會影響coding的速度。規範的打字手法加上練習,可以讓你的打字速度快的飛起,在這裡你可以測試自己的打字速度並循序漸進的練習,展示下我的練習進度。還需要繼續練習,當然這需要個過程,平時coding時...

碼農的自我修養之必備技能 學習筆記

命令面板是vscode快捷鍵的主要互動介面,可以使用f1或者cmd shift p win ctrl shift p 開啟。在命令面板中你可以輸入命令進行搜尋 中英文都可以 然後執行。命名面板中可以執行各種命令,包括編輯器自帶的功能和外掛程式提供的功能。所以一定要記住它的快捷鍵cmd shift p...