代碼異味

程序開發領域 ， 代碼中的任何可能導致深層次問題的症狀都可以叫做代碼異味 （ Code smell ） 。 通常 ， 在對代碼做簡短的反饋迭代時 ， 代碼異味會暴露出一些深層次的問題 ， 這裏的反饋迭代 ， 是指以一種小範圍的 、 可控的方式重構代碼 。 基於這些暴露的問題 ， 人們會進一步的檢查設計和代碼中是否還存在別的代碼異味 ， 然後再做進一步的重構 。 從負責重構的開發者的角度來看 ， 代碼異味可以啓發何時重構 ， 如何重構 。 因此 ， 可以說代碼異味推動着重構的進行 。 該術語似乎由肯特 · 貝克於90年代後期 ， 在WardsWiki上首次使用 。 且自從在Refactoring. Improving the Design of Existing Code.被提到過 ， 使用率就大大的提高 。 代碼異味同時也是敏捷開發者常用的術語 。 什麼是 ， 或者不是代碼異味 ， 是一個主觀的判斷 ， 通常因語言 、 開發者 、 開發方法的不同而不同 。 對於Java開發語言 ， 有些工具 ， 比如Checkstyle 、 PMD和 FindBugs可以自動檢測一些代碼異味 。