# Anti Patterns

> Common software anti-patterns, code smells, and how to avoid them

- Skill: `neuralblitz/anti-patterns-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add neuralblitz/anti-patterns-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/neuralblitz/anti-patterns-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: NeuralBlitz (https://skillmd.com/u/neuralblitz)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/neuralblitz/anti-patterns-2

---


## What I do
- Identify code anti-patterns in existing code
- Suggest refactoring solutions
- Avoid common mistakes in design and implementation
- Improve code quality and maintainability
- Recognize technical debt indicators

## When to use me
When reviewing code, improving designs, or fixing maintainability issues.

## Code Anti-Patterns

### Object-Oriented
- **God Object**: Single class doing too much
- **Spaghetti Code**: Unstructured, tangled control flow
- **Magic Numbers**: Hard-coded values without constants
- **Feature Envy**: Excessive use of another class's data
- **Data Clumps**: Groups of variables passed together
- **Refused Bequest**: Not using inherited methods
- **Switch Statements**: Complex conditionals instead of polymorphism
- **Parallel Inheritance**: Duplicate class hierarchies

### Design Anti-Patterns
- **Singleton Abuse**: Overuse of singletons
- **Dependency Hell**: Complex dependency chains
- **Circular Dependencies**: A→B→C→A
- **Interface Bloat**: Overly complex interfaces
- **Leaky Abstractions**: Exposing internal details
- **Golden Hammer**: Using one solution for everything
- **Reinvention**: Not using built-in features
- **Analysis Paralysis**: Over-planning

### Database Anti-Patterns
- **Database as IPC**: Using DB for communication
- **God Table**: One table for everything
- **EAV**: Entity-Attribute-Value pattern
- **Naive Enum**: Storing enums as strings without constraints
- **Missing Indexes**: Slow queries due to full table scans
- **N+1 Queries**: Loading related data inefficiently

### Concurrency
- **Race Conditions**: Uncoordinated concurrent access
- **Deadlock**: Circular wait dependencies
- **Blocking Operations**: Synchronous calls in async code
- **Shared Mutex**: Global locks causing contention

### Testing
- **Testing the Implementation**: Instead of behavior
- **Happy Path Only**: Only testing success cases
- **Manual Testing**: No automated tests
- **Tight Coupling**: Tests depend on implementation details

## Code Smells
- Long methods
- Large classes
- Duplicate code
- Long parameter lists
- Primitive obsession
- Data classes
- Comments explaining bad code

## Refactoring Strategies
- Extract Method
- Move Method
- Replace Conditional with Polymorphism
- Introduce Parameter Object
- Replace Magic Numbers
- Extract Class
- Inline Class
- Introduce Null Object

