日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

这些解决 Bug 的套路,你都会了不?

發(fā)布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 这些解决 Bug 的套路,你都会了不? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近整理了我原創(chuàng)的 140 篇編程經(jīng)驗和技術(shù)文章,歡迎大家閱讀,一起成長!指路:https://t.1yb.co/ARnD

大家好,我是魚皮。

學(xué)編程的過程中,我們會遇到各式各樣的 Bug,也常常因為它們而感到頭禿。

但隨著你不斷解決 Bug、積累經(jīng)驗,就會發(fā)現(xiàn)其實解決 Bug 也是有套路的。

今天分享下魚皮自己總結(jié)的解決 Bug 套路,幫助大家提高編程學(xué)習(xí)效率,保護頭發(fā)。

解決 Bug 套路總結(jié)

本文大綱:

準備工作

其實改 Bug 的過程就跟破案是一樣的。

首先,在急著去搜索問題、上手寫代碼改 Bug 之前,先做這么幾件事。

1. 獲得更多信息

就像案發(fā)現(xiàn)場找目擊者、搜集證據(jù)一樣。

我們要搞清楚 Bug 何時發(fā)生?為什么會發(fā)生?在什么情況下發(fā)生?

用戶到底做了什么操作,才導(dǎo)致了 Bug ?

是每次都會出現(xiàn) Bug,還是說點兒背觸發(fā)了呢,如果是偶然觸發(fā),是否可復(fù)現(xiàn)呢?

不能復(fù)現(xiàn)的 Bug,還叫 Bug 么?

這些信息,都很重要。如果可以的話,最好還能拿到用戶詳細的報錯原因、請求和響應(yīng),信息多了,才能幫助我們更精準地定位和分析問題。

2. 明確邊界

說白了,就是通過手上已有的信息,搞清楚要把這個 Bug 算在誰的頭上?

舉個例子,假如說用戶突然訪問不了你的網(wǎng)站了。這時千萬別自己先擱那傻傻分析和排查一通,而是可以先訪問下網(wǎng)站試試。要是你能訪問的話,說不定根本就不是 Bug,而是用戶自家的網(wǎng)線斷了!

企業(yè)開發(fā)中往往是多人協(xié)作,比如前端和后端、服務(wù)提供者和服務(wù)調(diào)用者,如何判斷是誰寫的 Bug 呢?

一般我們可以通過 接口 的請求參數(shù)和響應(yīng)參數(shù)來劃分職責。

比如我是前端,請求你后端的接口,向你發(fā)送 “魚皮”,你必須要返回我 “狗頭”。結(jié)果最后出現(xiàn) Bug 時,我一看,我給你發(fā)送的是 “魚皮”,你卻給我 “魚頭” 了對吧,那顯然是你那邊的 Bug,雨我無瓜。

3. 保護現(xiàn)場

確定是自己的 Bug 后,如果是線上程序出了 Bug,記得先把當時的程序狀態(tài)保留下來,比如 dump 內(nèi)存、下載日志,便于后面排查。

就和破案一樣,案發(fā)現(xiàn)場的東西千萬不能隨便亂碰,要不然可能就缺失了關(guān)鍵信息。

接下來看看如何解決 Bug。

自行解決

每個人的時間都很寶貴,出了問題時,建議先不要盲目地去問別人,而是自力更生,可以通過以下方式自己解決。

1. 自查

程序除了問題時,最直接的排查方式就是:對程序的報錯、已記錄的錯誤日志進行分析。

比如看到程序報錯 “db connection timeout”,顯然就是數(shù)據(jù)庫連接超時了,這個時候可以先去確認下是不是網(wǎng)絡(luò)和數(shù)據(jù)庫自身的問題,說不定就已經(jīng)能解決 Bug 了。

2. 搜索引擎

俗話說得好,遇事不決問某度,這可能是大家最常用的解決 Bug 手段了。

但如今的某度搜索引擎對程序員不太友好,廣告多、內(nèi)容過時、點進去后文不對題,這些都會成為你搜索的障礙。

那大家不妨試試這些技巧:

屏蔽廣告

在搜索詞后加上 “-advertisement” 可以快速屏蔽搜索的廣告信息:

站內(nèi)搜索

使用 site:域名 + 搜索詞,可以在特定的網(wǎng)站內(nèi)快速搜索,像現(xiàn)在大部分 Bug 的解決方案其實都在 CSDN:

關(guān)鍵詞搜索

使用某度搜索長句的時候,可以將錯誤信息中的關(guān)鍵詞拆解出來,比如版本號、數(shù)據(jù)庫類型等,使用空格進行連接疊加關(guān)鍵詞,可以更加精準搜索想要的結(jié)果,避免連接詞的干擾。

限定范圍

打開搜索工具,可以給搜索增加限定,比如時間、文件類型等:

當然,其他的搜索引擎也都有自己的搜索技巧,大同小異。

此外,大家也可以試試 開發(fā)者搜索 ,專門面向程序員的搜索引擎,純凈很多。而且看起來它的實現(xiàn)方式也很簡單,就只從開發(fā)者相關(guān)網(wǎng)站中搜索內(nèi)容就行了。

3. 官方文檔

當我們使用一些冷門技術(shù)或者較新的技術(shù)時,國內(nèi)的搜索引擎可能很難找到解決方案。

這時不妨打開官方文檔,直接搜索到和自己問題相關(guān)的部分,仔細閱讀一遍,說不定就發(fā)現(xiàn)其實是自己語法或參數(shù)寫錯了呢?

其實,很多 Bug 就是因為閱讀文檔不仔細而產(chǎn)生的!

對于組件庫、SDK、類庫、插件、API 的使用,我其實更傾向于去閱讀官方文檔,比較直接,一針見血。

4. Github

如果你使用的是開源的項目,那么可以試著在項目倉庫的 issues 中搜索答案,尤其是知名項目,用的人很多,你遇到的 Bug 有可能別人也遇到過。

如果有解決方案呢可以直接照搬,哪怕沒有解決方案,你也可以試著聯(lián)系遇到類似 Bug 的同學(xué),共同探索。

5. 追溯源碼

除了依賴沖突、內(nèi)存溢出之類的技術(shù)上的 Bug,其實我們工作中更多地是修復(fù)業(yè)務(wù)邏輯上的 Bug。比如做一個支付功能,用戶 A 扣了錢,但是沒有任何反應(yīng)。

那么這種情況也別費功夫在網(wǎng)上搜了,因為每個人寫的業(yè)務(wù)代碼都不一樣,五花八門。不如自己從程序的入口開始,用 Debug 打些斷點、打印一些變量信息,一行一行慢慢調(diào)試就好了。

如果你懷疑是某個依賴的類或方法出了問題,也可以直接點進去查看它的源碼和注釋。

尋求幫助

如果自己無法解決問題,我們就只能向他人求助了。

提問技巧

提問也是有技巧的,想要更快、更準確地獲得答案,就要把你的問題、場景、前因后果、關(guān)鍵信息都提供清楚,還可以利用 PasteBin 之類的工具分享代碼,讓別人更好讀懂。

像我每天都會收到上百條私信提問,其中很多同學(xué)連自己要問什么都描述不清楚,比如:我網(wǎng)站為啥無法訪問了?

這種問題我怎么幫你解決呢?這不是耽誤彼此的時間么?

所以我建議大家去閱讀《提問的智慧》這本免費小書,教你成為一個有智慧的提問者。

地址:https://github.com/tvvocold/How-To-Ask-Questions-The-Smart-Way

途徑

想好問什么之后,找誰問呢?

首先是兩大平臺:國內(nèi)的 CSDN 相對適合初學(xué)者;國外的 Stack Overflow ,更活躍、解答人數(shù)會更多。

如果是開源項目,可以考慮在 GitHub 項目倉庫下自己提一個新的 Issues ,艾特團隊官方人員去解決。

如果你用了別人提供的類庫和服務(wù),可以在官方文檔中找到項目的維護者,聯(lián)系他們并反饋。

此外,你也可以加一些專業(yè)人員的好友、加些編程交流小隊之類的抱團取暖,都是不錯的。


最后,如果以上方法都解決不了 Bug,那不妨試一試:重啟

重啟大法好,Bug 逃不了。重啟還不行,那就卸載重裝~

以上就是本期分享,我是魚皮,求個 點贊 ,這將是我持續(xù)創(chuàng)作的最大動力,謝謝 🙏

總結(jié)

以上是生活随笔為你收集整理的这些解决 Bug 的套路,你都会了不?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。