Anti-pattern
procedure o modi di fare usati durante il processo di sviluppo del software che, pur essendo lecitamente utilizzabili, si rivelano successivamente inadatti o controproduttivi nella pratica
In informatica, gli anti-pattern sono problemi che si incontrano frequentemente durante lo sviluppo dei programmi e che dovrebbero essere evitati.
Il termine antipattern è stato creato dalla cosiddetta Gang of Four (la banda dei quattro) nel loro libro intitolato Design Patterns: Elementi per il riuso di software ad oggetti, che presentava degli esempi di buona pratica di programmazione che gli autori chiamano nel libro, appunto, design pattern (in contrasto con gli anti-pattern).
Gli anti-pattern sono trappole logiche in cui il programmatore può facilmente cadere.
Gli anti-pattern più comuni
(Nota: il nome inglese deve essere lasciato in quanto è quello con cui i pattern, e gli anti-pattern, sono conosciuti nella lingua italiana)
- Azione a distanza - action at a distance
- Ancora da nave - boat anchor
- Attesa a vuoto - busy spin
- Mancato caching - caching failure
- Inerzia del codice - code momentum
- Carica e spara - accumulate and fire
- Codice procedurale - procedural code
- Codice puzzolente - code smell
- Colata di lava - lava flow
- Complessità involontaria - accidental complexity
- Controllo di tipo invece che di appartenenza - checking type instead of membership
- Corpi tiepidi - warm bodies
- Design by committee
- Inferno delle DLL - DLL hell
- Interblocco ricontrollato - double-checked locking
- Enorme palla di fango - big ball of mud
- Anomalia della sottoclasse vuota - empty subclass failure
- Fede cieca - blind faith
- Sbagliato di uno - fencepost error
- Fumo e specchi - smoke and mirrors
- Gestione a fungo- mushroom management
- Input ad-hoc - input kluge
- Interfaccia che ingrassa - interface bloat
- In mano al fornitore - vendor lock-in
- Invecchiamento rapido - continuous obsolescence
- Inversione di astrazione - abstraction inversion
- numero magico - magic number
- Oggetto Dio - God object
- Ottimizzazione prematura - premature optimization
- Paralisi da analisi - analysis paralysis
- Poltergeist - poltergeist
- Priorità alle estensioni - creeping featurism
- Problema dello yo-yo - yo-yo problem
- Programmazione copia e incolla - copy and paste programming
- Pulsante magico - magic pushbutton
- Punto di vista ambiguo - ambiguous viewpoint
- Reinventare la ruota - reinventing the wheel
- Reinventare la ruota quadrata - Reinventing the Square Wheel
- Software che ingrassa - software bloat
- Spaghetti code - spaghetti code
- Pila di piatti - stovepipe system
- Valori cablati- hard code
- Vicolo cieco - Dead End
Bibliografia
- William J. Brown, Raphael C. Malveau, Hays W. McCormick III, e Thomas J. Mowbray. 1998. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley & Sons. ISBN 0471197130.