In software engineering, an anti-pattern is a pattern that seems to work but is counter-productive and far from optimal in practice. An anti-pattern can easily result in unmaintainable and error-prone solutions. Usually, anti-patterns emerge over a period of time when new functionality is added incrementally without a focus on continuous refactoring. Maintenance of code by different developers over a period of time often compounds the problem.
Anti-patterns and languages supported
Here is the list of anti-patterns and the languages they are detected in:
| Anti-pattern | Language | Level |
|---|---|---|
| God Class | Java, C, C++, C#, Objective_C, Typescript | Components |
| Shotgun Surgery | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Feature Envy | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Global Hub | Java, C, C++, C#, Objective_C, Typescript | Components |
| Local Breakable | Java, C, C++, C#, Objective_C, Typescript | Components |
| Global Breakable | Java, C, C++, C#, Objective_C, Typescript | Components |
| Dispersed Coupling | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Brain Method | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Local Butterfly | Java, C, C++, C#, Objective_C, Typescript | Components |
| Intensive Coupling | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Brain Class | Java, C, C++, C#, Objective_C, Typescript | Components |
| Global Butterfly | Java, C, C++, C#, Objective_C, Typescript | Components |
| Solution Sprawl | C, C++, C# | Components |
| Fat Interface | Java, C, C++, C#, Objective_C, Typescript | Components |
| Message Chain | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Fan Out | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Decapsulation | C, C++ | Subcomponents |
| Unused Method | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Format Exposure | C, C++ | Subcomponents |
| Data Exposure | C, C++ | Subcomponents |
| Global Variable | C, C++, Python | Subcomponents |
| Test Hungry | Java, C, C++, C#, Objective_C, Typescript | Subcomponents |
| Monster File | Javascript, Python | Subcomponents |
| Nested Function | Javascript, Python | Subcomponents |
| Nested Closure | Javascript | Subcomponents |
| Promise Anomaly (Beta) | Javascript | Subcomponents |
| Markup in JS | Javascript | Subcomponents |
| Dispersed Variable Decl In Func | Javascript | Subcomponents |
| Direct Cyclic Dependency | Java, C#, Objective_C, Typescript | Components |
| File Coupling | Javascript, Python | Subcomponents |
