代码异味 程序开发领域代码中的任何可能导致深层次问题的症状都可以叫做代码异味Code smell 通常在对代码做简短的反馈迭代时代码异味会暴露出一些深层次的问题这里的反馈迭代是指以一种小范围的可控的方式重构代码基于这些暴露的问题人们会进一步的检查设计和代码中是否还存在别的代码异味然后再做进一步的重构从负责重构的开发者的角度来看代码异味可以启发何时重构如何重构因此可以说代码异味推动着重构的进行 该术语似乎由肯特贝克于年代后期在WardsWiki上首次使用且自从在Refactoring Improving the Design of Existing Code被提到过使用率就大大的提高代码异味同时也是敏捷开发者常用的术语 什么是或者不是代码异味是一个主观的判断通常因语言开发者开发方法的不同而不同对于Java开发语言有些工具比如CheckstylePMD和 FindBugs可以自动检测一些代码异味