Code-Smell, kurz Smell oder auf Deutsch übelriechender Code, bezeichnet in der Programmierung ein Konstrukt, das auf die Notwendigkeit einer Überarbeitung des Quellcodes hinweist. Die Metapher „Smell“ stammt von Kent Beck und erlangte durch das Buch Refactoring von Martin Fowler weite Verbreitung.
Code Smell bezieht sich auf bestimmte Muster oder Anzeichen in einer Codebasis, die darauf hinweisen können, dass der Code schlecht strukturiert oder potenziell fehlerhaft ist.
Es sind keine direkten Fehler, sondern Hinweise auf mögliche Probleme, die eine Überarbeitung oder Re-Factoring des Codes erfordern können, um die Lesbarkeit, Wartbarkeit und Effizienz zu verbessern. Code Smells können beispielsweise redundante Codes, lange Methoden oder Klassen, übermäßige Kommentare oder schlechte Benennung von Variablen sein.