程式設計師研究室:新手程式設計師遇到BUG不要慌,教你幾招解決問題

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題


公司新來的新手程序員,最近已經開始了他們的工作,部門的項目經理,為了讓他們快速上手,讓他們對之前的系統進行BUG修復工作,我認為,這種思路對新手程序員來說,是很有益的,通過查找解決BUG,來熟悉業務和代碼邏輯和結構,是比較快的上手方式,今天跟大家討論下處理BUG的方法。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

遇到BUG時的反應

很多程序員遇到BUG的反應,可能是這樣:

這不可能,在我這兒好好的。

不應該以前沒這個問題。

可能是數據有問題。

我沒改這塊兒代碼,怎麼可能。

你重啟一下試試看。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

新手程序員應該在遇到BUG時,應該要儘量做到第一時間對問題現象的原因,有一定的猜測,能夠推測出問題大概出在代碼哪部分、哪個模塊,這樣才是一個合格的程序員應該做到的,當然能做到的基礎,就是你已經對系統結構相當瞭解。

解決BUG的方法

  • 優先解決那些可重現的,可重現的BUG特別好找,反覆調試測試就好了,先把好解決的幹掉,這樣最節約時間。
  • 對於某些BUG沒有頭緒或者現象古怪不知道從哪裡下手,找有經驗的同事問一下思路,說不定是系統的長期存在的問題,他們已經處理過很多同類型的BUG了。
程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 二分法定位,把程序一點點註釋掉,看看還會不會出問題,逐步縮小BUG範圍。
  • 模擬現場,有時候我會問自己,如果我要實現bug描述的現象我要怎麼寫代碼才行?然後反向去查看代碼。
程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

解決不了怎麼辦

  • 上網查

面對處理不了的BUG,第一反應是上網查。大多數程序員會將他們遇到的問題通過帖子發佈到論壇上,尋求幫助或分享經驗。搜索問題關鍵字,可以查詢別人的文章指點你解決問題。如果搜不到那就是個悲劇了,那就只能上Stack Overflow求助了。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 有沒有已經實現功能的成熟代碼

不要老是造輪子,借鑑別人的成熟代碼能夠快速提高效率的方式,而且成熟的代碼,用的人也多,更不容易出現問題,或者解決的方法更多。

  • IE瀏覽器

瀏覽器的兼容性開發,對web開發人員來說,是一個噩夢,因為在IE6中打開頁面真得會出現各種稀奇古怪的BUG。值得慶幸的是,這樣的日子已經慢慢過去了。所以拋棄IE6吧,大聲的告訴客戶,請升級瀏覽器。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 檢查標點符號或基本命名或語法

盯著代碼數個小時,以為函數調用或參數輸入搞錯了,最後才發現是遺漏了一個括號,應該有很多程序員都遇到過這種情況。萬幸,現在很多IDE已經能夠幫我們檢查這些基本錯誤了,省心不少。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 休息下

有時候,BUG遲遲找不到或解決不了,你只是需要站起來,遠離顯示器,眺望下遠方,反而有助於思路突破。當然,雖然大多數健康文章都會建議每隔30-60分鐘休息一會兒。但是這一切都取決於你的需要,如果你覺得在編碼工作中休息,會讓靈感消失,那就不要中斷。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 恢復上個版本

可能你沒有更新代碼的任何部分,但是系統突然就不工作了,這是最讓人頭疼的了。甚至有可能改回去也無濟於事,所以代碼勤備份上傳,實在解決不了,恢復到正常運行的最後一個版本,然後從再開始一步步重新來。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 數據備份

和代碼一樣,數據庫也要保證備份,最好在每次修改前都備份下關鍵數據,如果出現BUG導致數據丟失或損壞,起碼有備份可以短時間內恢復原狀。

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 更新類庫或工具版本

雖然大多時候不需要考慮太多環境、工具、類庫等等的版本,不過確實有時候有些神奇的問題是由於版本太老的問題造成的,所以升級到最新版本就能夠解決問題。不過神奇的是,有時候版本太新也會出現問題,如果升級後發生BUG,可以嘗試下還原到原來版本試試看……

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

  • 重新寫

有時候,在你絞盡腦汁花費數個小時之後,實在解決不了,不如把代碼刪掉,再從頭來過就可以了,考慮到先前已經耗費的時間,最難得就是下定這個決心,所以這是最終解決方案……

程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題

總結:

希望今天的內容,能夠對新手程序員朋友有一定的幫助,幫助你們儘早脫離新手身份,歡迎留言。


程序員研究室:新手程序員遇到BUG不要慌,教你幾招解決問題


分享到:


相關文章: