# Anti-Patterns

## About

An **anti-pattern** is a common but counterproductive solution to a recurring problem in software development. Unlike code smells, which signal deeper issues, anti-patterns reflect **design or architectural decisions** that seem correct initially but lead to poor outcomes over time.

> In short: *An anti-pattern is the wrong solution to a real problem.*

They often arise from inexperience, rushed timelines, or misuse of language features and design principles. Recognizing anti-patterns is the first step toward writing maintainable, scalable, and clean code.

## Why Anti-Patterns Matter ?

* **Maintainability Issues**: Anti-patterns increase complexity and decrease code readability.
* **Scalability Barriers**: They introduce tight coupling, redundancy, and poor modularity.
* **Team Friction**: Developers working on codebases with anti-patterns often struggle to understand or safely modify code.
* **Hidden Technical Debt**: They accumulate into fragile systems that are costly to fix.

Understanding anti-patterns equips developers to avoid design pitfalls and make informed architectural decisions.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.pranaypourkar.co.in/the-programmers-guide/java/code-quality-and-analysis/anti-patterns.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
