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 |