如何診斷與調(diào)試Java代碼中的Bug?

字號(hào):

BUG 模式與 Java 診斷
    正如好的編程技能涉及很多設(shè)計(jì)模式(您可以在不同的程序上下文中組合和應(yīng)用這些模式)的知識(shí)一樣,好的代碼診斷和 Bug 調(diào)試技能也涉及對(duì)錯(cuò)誤模式的一定了解。錯(cuò)誤模式就是已發(fā)生的錯(cuò)誤和程序中潛在的錯(cuò)誤之間的重復(fù)出現(xiàn)的相互關(guān)系。很多錯(cuò)誤都遵循我們可以識(shí)別的幾種錯(cuò)誤模式的其中一種。一旦您可以識(shí)別出這些錯(cuò)誤模式,您就可以診斷出錯(cuò)誤的原因并且更快地糾正它。錯(cuò)誤模式與反模式有關(guān),反模式是一次又一次被證明是失敗的公共軟件設(shè)計(jì)的模式。雖然反模式是設(shè)計(jì)模式,錯(cuò)誤模式卻是與編程錯(cuò)誤相關(guān)的錯(cuò)誤的程序行為的模式。這與設(shè)計(jì)根本沒有關(guān)系,而是與編程和調(diào)試過程有關(guān)。
    了解各種具體的錯(cuò)誤模式以及如何診斷和糾正 Java 程序中反復(fù)出現(xiàn)的錯(cuò)誤類型,請(qǐng)參閱 Eric Allen 的系列專欄:
    診斷 Java 代碼 。
    在此專欄中,Eric Allen 針對(duì)各種錯(cuò)誤模式進(jìn)行了一些具體的討論:
    錯(cuò)誤模式簡介
    Dangling Composite 錯(cuò)誤模式
    Null Flag 錯(cuò)誤模式
    Double Descent 錯(cuò)誤模式
    Liar View 錯(cuò)誤模式
    Saboteur Data 錯(cuò)誤模式
    Broken Dispatch 錯(cuò)誤模式
    Imposter Type 錯(cuò)誤模式
    Split Cleaner 錯(cuò)誤模式
    Fictitious Implementation 錯(cuò)誤模式,第 1 部分
    Fictitious Implementation 錯(cuò)誤模式,第 2 部分
    孤線程(Orphaned Thread)錯(cuò)誤模式
    連續(xù)初始化器錯(cuò)誤模式
    將時(shí)態(tài)邏輯用于錯(cuò)誤模式
    另外,他還討論了許多其它關(guān)于 Java 代碼診斷的主題:
    設(shè)計(jì)可測試的應(yīng)用程序
    設(shè)計(jì)可擴(kuò)展的應(yīng)用程序
    設(shè)計(jì)可輕松維護(hù)的代碼
    “殺手組合”— mixin、Jam 和單元測試
    Java 調(diào)試
    即使是級(jí)的開發(fā)人員所開發(fā)的最簡單的應(yīng)用程序也可能包含錯(cuò)誤。如果要成為好的調(diào)試人員,不必象大偵探那樣調(diào)查蛛絲馬跡。您只需了解概念并熟悉正確的工具。
    “教程:Java 調(diào)試”提供了關(guān)于基本 Java 調(diào)試概念和更高級(jí)調(diào)試類型的詳細(xì)信息。