Anti-pattern: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
m →Altri progetti: Aggiunto il parametro "Preposizione" nel template "Interprogetto" |
||
(9 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
In [[informatica]], in particolare nell'[[ingegneria del software]], gli '''anti-pattern''' (o antipattern) sono dei ''[[design pattern]]'', o, più in generale, delle 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<ref>{{Cita libro|autore=Ambler, Scott W.|titolo=Process patterns: building large-scale systems using object technology|anno=1998|p=4|citazione=...common approaches to solving recurring problems that prove to be ineffective. These approaches are called antipatterns.|ISBN=ISBN 0-521-64568-9}}</ref><ref>{{Cita libro|autore=Budgen, D.|titolo=Software design|url=https://books.google.com/books?id=bnY3vb606bAC&q=%22anti-pattern%22+date:1990-2003&pg=PA225|anno=2003|p=225|citazione=As described in Long (2001), design anti-patterns are 'obvious, but wrong, solutions to recurring problems'.|ISBN=0-201-72219-4}}</ref>. Il termine fu coniato nel 1995 da Andrew Koenig, ispirato dal libro ''[[Design Patterns|Design Patterns: Elementi per il riuso di software ad oggetti]]'' scritto dalla [[Gang of Four (scrittori)|Gang of Four]] (la banda dei quattro), i quali svilupparono il concetto di pattern nel campo del software.
Fu, tuttavia, il libro ''AntiPatterns'' del 1998 a rendere popolare l'idea e ad ampliarne l'ambito oltre il campo del design del software, includendo anche l'architettura software e la gestione dei progetti<ref name=":0">{{Cita libro|nome=Colin J.|cognome=Neill|nome2=Phillip A.|cognome2=Laplante|nome3=Joanna F.|cognome3=DeFranco|titolo=Antipatterns: managing software organizations and people|edizione=2nd ed (Online-Ausg.)|collana=Applied software engineering series|data=2012|editore=CRC Press/Auerbach Publications|pp=4-5-6|ISBN=978-1-4398-6216-2}}</ref>. Successivamente, altri autori hanno ulteriormente esteso il concetto per abbracciare antipattern ambientali, organizzativi e culturali<ref name=":0" />.
Secondo l'autore, devono presentarsi almeno due elementi chiave per poter distinguere un anti-pattern da un semplice errore logico o cattiva pratica:▼
== Definizione ==
▲Secondo
* Qualche schema ricorrente di azioni, processi o strutture che inizialmente appaiono essere di beneficio, ma successivamente producono più problemi che benefici.
* L'esistenza di una soluzione alternativa che è chiaramente documentata, collaudata nella pratica e ripetibile, ma che non viene adottata.
Molti anti-pattern sono poco più che errori, problemi irrisolvibili o cattive pratiche da evitare quando possibile. A volte chiamati "pitfalls" (tranelli) o ''[[dark pattern]]'' (
Una guida comunemente utilizzata è la "regola del tre," simile a quella per i pattern: per essere considerato un antipattern, deve essere stato osservato almeno tre volte.<ref name=":0" />
Per descrivere in modo formale errori che tendono a ripetersi, si può individuare la forza con la quale questi si ripetono, e imparare come altre persone hanno rimediato a questi cattivi pattern.▼
== Uso ==
== Gli anti-pattern più comuni ==▼
▲Per
Documentare gli antipattern può essere un metodo efficace per analizzare un ambito problematico e raccogliere conoscenze esperte.<ref>{{Cita pubblicazione|autore=Edward Jimenez|anno=2006|mese=04|titolo=AntiPatterns|url=http://antipatterns.com/EdJs_Paper/Antipatterns.html}}</ref>
Sebbene alcune descrizioni di antipattern si limitino a documentare le conseguenze negative del pattern, una buona documentazione di un antipattern fornisce anche un'alternativa o un modo per attenuarlo.
▲== Gli anti-pattern più comuni ==
(Nota: il nome in inglese è stato lasciato in quanto è quello con cui i pattern, e gli anti-pattern, sono conosciuti nella lingua italiana)
'''Organizzativi'''
* Progettazione orientata alla commissione (''
* Corpi tiepidi
* Paralisi da analisi
* Sistema a tubo da stufa
'''Nel management'''
* Fumo e specchi
* Gestione a fungo
* Marcia della morte
* [[Elefante nella stanza]]
'''Di sviluppo'''
* Ancora
* ''[[
* [[Azione a distanza (informatica)|Azione a distanza]]
*
* [[Carica e spara]]
* Codice
* Colata di lava
* Complessità involontaria
* Enorme palla di fango
* Fede cieca
* Inerzia del codice
* Inferno delle
*
* Input ad-hoc
* [[Interblocco ricontrollato]]
* Interfaccia
* [[Obsolescenza digitale|Invecchiamento rapido]]
* [[Inversione di astrazione]]
* [[Kitchen sink]]: oggetto che contiene un gran numero di operazioni complesse ed eterogenee tra loro
* [[Magic number|Numero magico]]
* [[Programmazione orientata agli oggetti|Oggetto]] Dio
* Ottimizzazione prematura
* ''Poltergeist'': oggetto il cui unico compito è passare informazioni a un unico altro oggetto
* Priorità alle estensioni
* Problema dello yo-yo
* [[Programmazione cargo cult]]
* Programmazione copia e incolla
* Pulsante magico
* Punto di vista ambiguo
* [[Reinventare la ruota]]
* Reinventare la ruota quadrata
*
* [[Software bloat|Software che ingrassa]]
* [[Spaghetti code]]
* [[
* Valori esterni
* [[Vicolo cieco (informatica)|Vicolo cieco]]
== 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 0-471-19713-0.
==
<references />
== Altri progetti ==
{{interprogetto|preposizione=sull'}}
== Collegamenti esterni ==
* http://www.antipatterns.com
|