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
God ClassJava, C, C++, C#, Objective_C, Typescript
Shotgun SurgeryJava, C, C++, C#, Objective_C, Typescript
Feature EnvyJava, C, C++, C#, Objective_C, Typescript
Global HubJava, C, C++, C#, Objective_C, Typescript
Local BreakableJava, C, C++, C#, Objective_C, Typescript
Global BreakableJava, C, C++, C#, Objective_C, Typescript
Dispersed CouplingJava, C, C++, C#, Objective_C, Typescript
Brain MethodJava, C, C++, C#, Objective_C, Typescript
Local ButterflyJava, C, C++, C#, Objective_C, Typescript
Intensive CouplingJava, C, C++, C#, Objective_C, Typescript
Brain ClassJava, C, C++, C#, Objective_C, Typescript
Global ButterflyJava, C, C++, C#, Objective_C, Typescript
Solution SprawlC, C++, C#
Fat InterfaceJava, C, C++, C#, Objective_C, Typescript
Message ChainJava, C, C++, C#, Objective_C, Typescript
Fan OutJava, C, C++, C#, Objective_C, Typescript
DecapsulationC, C++
Unused MethodJava, C, C++, C#, Objective_C, Typescript
Format ExposureC, C++
Data ExposureC, C++
Global VariableC, C++, Python
Test HungryJava, C, C++, C#, Objective_C, Typescript
Monster FileJavascript, Python
Nested FunctionJavascript, Python
Nested ClosureJavascript
Promise Anomaly (Beta)Javascript
Markup in JSJavascript
Dispersed Variable Decl In FuncJavascript
Direct Cyclic DependencyJava, C#, Objective_C, Typescript
File CouplingJavascript, Python