《The Productive Programmer》6
靜態(tài)分析 Static analysis
如果你在使用一種靜態(tài)類型語言,你就有一種隔離和發(fā)現(xiàn)某幾類bug的強大手段----這些bug通過代碼評審或是別的傳統(tǒng)方式很難發(fā)現(xiàn)。靜態(tài)分析(Static Analysis)就是用軟件工具對程序代碼進行驗證的機制,通過它可以找出其中存在的已知的bug模式。
靜態(tài)分析工具大致分為兩類:對編譯結(jié)果(class文件 或是字節(jié)碼)進行分析,或?qū)υ创a進行分析。
字節(jié)碼分析:
字節(jié)碼分析的目標(biāo)是在編譯后的代碼中找出已知的bug模式。首先,人們已經(jīng)對某些語言進行了足夠的研究。以至于能夠從編譯后的字節(jié)碼中找到一些常見的bug模式。這個工具不能找出所有的bug。。
字節(jié)碼分析,能夠大概找到以下類型的bug
正確性 可能是邏輯錯誤的地方
不良實踐 違反基本編碼實踐
迷惑 難懂的代碼,奇怪的方法,反常的做法,糟糕的代碼
源代碼分析
源代碼分析,能大概找到以下類型的bug
可能的bug 空的try catch
dead code 沒有被用到的本地變量、參數(shù)和私有變量等。
欠優(yōu)化的代碼 無節(jié)制的字符串操作
過于復(fù)雜的表達式 以復(fù)制黏貼的方式來復(fù)用代碼
重復(fù)代碼
posted on 2010-08-24 21:17 Sosi 閱讀(172) 評論(0) 編輯 收藏 引用 所屬分類: Books