Code Smells - DevIQ
Maybe your like
- Introduction
- 🔍 Search
- Design Patterns
- Overview
- Abstract Factory
- Adapter
- Builder
- Chain of Responsibility
- CQRS
- Decorator
- Domain Events Pattern
- Facade
- Factory Method
- Guard Clause
- Mediator
- Memento
- Null Object
- Object Mother
- Observer
- Outbox Pattern
- Proxy
- Repository
- REPR
- Rules Engine
- Singleton
- Specification
- State
- Strangler Fig
- Strategy
- Unit of Work
- Practices
- Overview
- The 50/72 Rule
- Authentication
- Authorization
- Behavior Driven Development
- Code Readability
- Collective Code Ownership
- Common Architectural Vision
- Continuous Integration
- Defensive Programming
- Dependency Injection
- Descriptive Error Messages
- Dogfooding
- Know Where You Are Going
- Naming Things
- Observability
- Pain Driven Development
- Pair Programming
- Parse, Don't Validate
- Read the Manual
- Red, Green, Refactoring
- Refactoring
- Rubber Duck Debugging
- Shipping Is A Feature
- Simple Design
- Single Point of Enforcement
- Test Driven Development
- Timeboxing
- Update the Plan
- Vertical Slices
- Whole Team
- Whole Team Activity
- YOLO Architecture
- Principles
- Overview
- Architectural Agility
- Boy Scout Rule
- Dependency Inversion
- Don't Repeat Yourself
- Encapsulation
- Explicit Dependencies
- Fail Fast
- Hollywood
- Interface Segregation
- Inversion of Control
- Keep It Simple
- Principle of Least Astonishment
- Liskov Substitution
- Make Invalid States Unrepresentable
- Once and Only Once
- Open-Closed
- Persistence Ignorance
- Separation of Concerns
- Single Responsibility
- SOLID
- Stable Dependencies
- Tell, Don't Ask
- Tolerance for Imperfection
- YAGNI
- Values
- Overview
- Communication
- Courage
- Feedback
- Respect
- Simplicity
- Antipatterns
- Overview
- Analysis Paralysis
- Architecture by Implication
- Assumption Driven Programming
- Big Ball of Mud
- Big Design Up Front (BDUF)
- The Blob
- Broken Windows
- Calendar Coder
- Code Smells
- Copy Folder Versioning
- Copy Paste Programming
- Death By Planning
- Death March
- Duct Tape Coder
- Exposing Collection Properties
- Fast Beats Right
- Feature Creep
- Flags Over Objects
- Found on Internet
- Frankencode
- Frozen Caveman
- Golden Hammer
- Iceberg Class
- Last 10% Trap
- Lois Lane Planning
- Magic Strings
- Mushroom Management
- Not Invented Here
- One Thing To Rule Them All
- Reinventing the Wheel
- Service Locator
- Shiny Toy
- Singleton
- Smoke and Mirrors
- Spaghetti Code
- Static Cling
- Walking Through a Minefield
- Waterfall
- Witches' Brew Architecture
- Code Smells
- Overview
- Primitive Obsession
- Domain Driven Design
- Overview
- Aggregate
- Anemic Model
- Anti-Corruption Layer
- Bounded Context
- Context Mapping
- Domain
- Domain Model
- Domain Storytelling
- Entity
- EventStorming
- Shared Kernel
- Strategic Design
- Subdomain
- Tactical Design
- Ubiquitous Language
- Value Object
- Tools
- Overview
- Build Server
- Version Control
- Terms
- Overview
- Bus Factor
- Kinds of Models
- Technical Debt
- Testing
- Overview
- Arrange-Act-Assert
- Automated Tests
- Front-End Tests
- Functional Tests
- Integration Tests
- The Testing Pyramid
- Unit Tests
- Laws
- Overview
- Amara's Law
- Amdahl's Law
- Anderson's Law
- Brooks's Law
- Conway's Law
- Cunningham's Law
- Law of Demeter
- Law of Diminishing Returns
- DRY
- Gall's Law
- Goodhart's Law
- Hebb's Law
- Hick's Law
- Hofstadters's Laws
- Kerckhoff's Principle
- Linus's Law
- Moore's Law
- Murphy's Law
- Postel's Law
- Software Architecture, Laws of
- Wirth's Law
- Architecture
- Overview
- Clean Architecture
- Event-Driven Architecture
- Vertical Slice Architecture
Code smells, or bad smells in code, refer to symptoms in code that may indicate deeper problems. They're a diagnostic tool used when considering refactoring software to improve its design. Not all code smells should be "fixed" - sometimes code is perfectly acceptable in its current form. Context is important, so what may be inappropriate in one application or part of an application may be appropriate elsewhere.
Each of these smells is demonstrated, and corrective actions described, in the Refactoring for C# Developers course on Pluralsight.
Common Code Smells
Bloaters
- Long Method
- Primitive Obsession
- Long Parameter List
- Data Clumps
- Combinatorial Explosion
- Oddball Solution
- Class Doesn't Do Much
- Required Setup/Teardown Code
Obfuscators
- Regions
- Comments
- Poor Names
- Vertical Separation
- Inconsistency
- Obscured Intent
- Bump Road
Object Orientation Abusers
- Switch Statements
- Temporary Field
- Alternative Class with Different Interfaces
- Class Depends on Subclass
- Inappropriate Static / Static Cling
Change Preventers
- Divergent Change
- Shotgun Surgery
- Parallel Inheritance Hierarchies
- Inconsistent Abstraction Levels
- Conditional Complexity
- Poorly Written Tests
Dispensables
- Lazy Class
- Data Class
- Duplicate Code
- Dead Code
- Speculative Generality
Couplers
- Feature Envy
- Inappropriate Intimacy
- Law of Demeter Violations
- Indecent Exposure
- Message Chains
- Middle Man
- Tramp Data
- Artificial Coupling
- Hidden Temporal Coupling
- Hidden Dependencies
Test Smells
- Not Enough Tests
- DRY versus DAMP
- Fragility
- The Liar
- Excessive Setup
- The Giant
- The Mockery
- The Inspector
- Generous Leftovers
- The Local Hero
- The Nitpicker
- The Secret Catcher
- The Loudmouth
- The Greedy Catcher
- The Sequencer
- The Hidden Dependency
- The Enumerator
- The Stranger
- The OS Evangelist
- Success Against All Odds
- The Free Ride
- The One
- The Peeping Tom
- The Slow Poke
- The Contradiction
- Roll the Dice
- Hidden Tests
- Second Class Citizens
- Wait and See
- Inappropriate Test Group
- The Optimist
- The Sleeper
- The Void
References
Refactoring for C# Developers on Pluralsight
Edit this page on GitHubPrev
Calendar Coder
Next
Copy Folder Versioning
On this page
- Common Code Smells
- Bloaters
- Obfuscators
- Object Orientation Abusers
- Change Preventers
- Dispensables
- Couplers
- Test Smells
- References
Better Software, FasterNimblePros helps development teams deliver better software, faster. Find out how.Sponsored Tag » Code Smells Examples
-
Understanding Code Smells And How Refactoring Can Help - TechTarget
-
Code Smells That Are Found The Most In Software Projects - Apiumhub
-
Code Smells - Refactoring.Guru
-
10 Programming Code Smells That Affect Your Codebase
-
Code Smells | Baeldung On Computer Science
-
5 Code Smell Examples That Are Probably Already In Your Code
-
Code Smell - Wikipedia
-
5 Most Common Code Smells That You Should Avoid - Medium
-
31 Code Smells All Software Engineers Must Watch Out For
-
How To Identify Code Smells - Jobsity
-
Javascript Code Smells: 7 To Watch Out For - Testim Blog
-
Identifying Code Smells In Java - Java Code Geeks - 2022
-
What Are Code Smells? | How To Detect And Remove Code ... - Codegrip
-
Code Smell - A General Introduction And It's Type - GeeksforGeeks