“代码异味”指代码中可能暗示设计或实现存在问题的迹象(不一定是明确的 bug),例如重复代码、过长函数、过度耦合等。它通常提示需要重构以提升可读性、可维护性与扩展性。(该短语在不同语境下也可泛指“让人觉得不对劲的代码风格/结构”。)
/ˈkoʊd smɛl/
This function is a code smell—it’s doing too many things.
这个函数有“代码异味”——它做了太多事情。
Although the feature works, the scattered conditionals are a code smell that suggests the design will be hard to maintain as requirements change.
尽管功能能跑通,但到处散落的条件判断是一种“代码异味”,暗示随着需求变化,这个设计会很难维护。
“Code smell”把“smell(气味)”借喻为不需要精密证明也能让人警觉的不良迹象:闻到“味道”就知道哪里可能有问题。该术语常被认为由 Kent Beck 提出,并在 Martin Fowler 的重构思想传播中广泛流行(尤其是与“重构(refactoring)”概念一起使用)。