- Code smell
-
Unter Smell (von engl. "schlechter Geruch") versteht man in der Programmierung ein Konstrukt, das auf ein Problem hinweist und eine Überarbeitung des Programm-Quelltextes nahelegt. Ein Smell muss nicht unbedingt ein Fehler sein, das fragliche Konstrukt kann auch bewusst eingesetzt worden sein. In solchen Fällen sollte aber ein Kommentar darauf hinweisen. Dem Vernehmen nach stammt der Begriff Smell von Kent Beck.
Wichtige bekannte Smells sind:
- Nebeneffekt – wenn Abfragemethoden den Zustand eines Programms verändern, z. B. Variablen.
- Code-Duplizierung (durch einfaches Kopieren des Quelltextes) – gleicher oder fast gleicher Code an mehreren Stellen.
- Zu lange Funktion.
- Zu große Klasse (objektorientierte Programmierung).
Neben den von Beck und Fowler adressierten Smells im Quelltext von Anwendungen treten Smells auch in der Architektur von Softwaresystemen auf. Diese wurden von Stefan Roock und Martin Lippert beschrieben.
Zu den Architektur-Smells zählen unter Anderem:
- Zyklische Benutzungsbeziehungen zwischen Paketen, Schichten und Subsystemen
- Größe und Aufteilung der Pakete oder Subsysteme
Literatur
- Martin Fowler: Refactoring. Wie Sie das Design vorhandener Software verbessern. Addison-Wesley, München 2000 (Originaltitel: Refactoring. Improving The Design Of Existing Code, übersetzt von Bernd Kahlbrandt), ISBN 3-8273-1630-8, S. 67–82.
Weblinks
- Code Smell (empros Gmbh) Überblick über Smells mit (teilweise unüblichen) eingedeutschten Namen.
- Refactoring Eine Überblicksarbeit, die im Abschnitt 2.3 unter dem Titel "Bad Smells" einige wichtige Smells erklärt.
Wikimedia Foundation.