🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Programming Concepts Beginner

What is Code Smell?

A surface indication in code that usually corresponds to a deeper problem in the system, suggesting the need for refactoring.

Code smells are not bugs — the code works correctly — but they indicate design weaknesses that may cause problems over time. Common smells include: Long Method (functions doing too much), God Class (a class that knows too much), Feature Envy (a method that uses another class's data more than its own), Primitive Obsession (using primitives instead of small objects), Shotgun Surgery (a change requires modifying many classes), and Duplicate Code. Martin Fowler's refactoring catalog provides specific techniques for addressing each smell. Static analysis tools (SonarQube, PHPStan) can detect certain code smells automatically.

Related Terms

Debugging
The process of finding and fixing errors (bugs) in software code to ensure correct program behavior.
Queue
A data structure that follows First-In-First-Out (FIFO) ordering, where elements are added at the rear and removed from the front.
Clean Code
Code that is easy to read, understand, and maintain — following consistent conventions, meaningful naming, and single-responsibility functions.
Garbage Collection
An automatic memory management process that identifies and reclaims memory no longer in use by a program.
SOLID Principles
Five design principles for writing maintainable, flexible object-oriented code: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.
DRY (Don't Repeat Yourself)
A software development principle that aims to reduce code duplication by abstracting common patterns into reusable components.
View All Programming Concepts Terms →