Antipattern

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 29. května 2022; ověření vyžaduje 1 úpravu .

Anti-vzor je běžný přístup  k řešení třídy běžných problémů, který je neefektivní, riskantní nebo neproduktivní [1] . Na rozdíl od návrhového vzoru zahrnuje zvážení antivzoru jak nesprávné řešení problému s jeho znaky a důsledky, tak východisko ze situace [2] .

Termín pochází z informatiky , z knihy Gang of Four „ Design Patterns “, která obsahuje příklady dobrých programovacích postupů. Autoři nazvali tyto dobré postupy „vzory“ a jejich opakem jsou „anti-vzorce“. Součástí správné programátorské praxe je vyhýbat se antivzorkům. Než se tento termín objevil, všechny problémy se nazývaly pasti ( úskalí ) . Antipatterny jsou tedy nejběžnější pasti, ale ne všechny pasti budou antivzory.

Antipatterny jsou koncepčně podobné vzorům v tom, že dokumentují opakující se řešení běžných problémů. Jsou známé jako anti-vzorce, protože jejich použití (nebo zneužití) má negativní důsledky [3] .

Historie

S rozvojem IT průmyslu rychle rostl rozsah softwarových projektů a náklady na jejich zdroje, což dalo vzniknout velkému množství problémů, se kterými se programátoři potýkali. Většina těchto problémů byla typická a vyskytovala se téměř u každého velkého projektu. Počátkem 90. let získaly značnou oblibu katalogy designových vzorů , "patterns" ( angl.  design patterns ) - elegantní a osvědčené způsoby řešení typických problémů. Vzory jsou dnes stále silné a extrémně populární, nicméně mnoho vývojářů používajících oblíbené vzory v situacích, pro které nebyly určeny, vytvořilo více problémů, než jich vyřešilo. Kromě toho mohou IT inženýři, stejně jako pracovníci v jakékoli jiné oblasti činnosti, identifikovat typické chyby způsobené nedostatečnou znalostní základnou nebo nedostatkem zkušeností, spěchem a tlakem kvůli termínům projektů, finančním omezením a dalším.

Poprvé byl termín "anti-vzor" ve smyslu zobecněného popisu typického neúspěšného řešení použit v roce 1996 Michaelem Akroydem na Object World West Conference, věnované aspektům objektově orientovaného programování . [4] Aykroyd ve své prezentaci Anti-Patterns: Preventing Object Misuse upozornil na škodlivé, ale běžné programátorské konstrukty, zejména ty, které jsou v rozporu s principy OOP. Ke každému takovému provedení navíc nabízel účinnou náhradu.

Termín ve smyslu „špatný nápad“ se vyskytoval před Aykroydem, ale nebyl publikován a nebyl nijak zvlášť populární. A přesto se nevyplatí připisovat autorství jedné osobě. Podle Williama Browna, autora Antipatterns: Refactoring Applications, Architectures, and Projects, je antipattern fází ve vývoji konceptu návrhového vzoru, rozšířením jejich modelu.

Klasifikace

William Brown rozlišuje anti-vzory ze tří hledisek: vývojář , architekt a manažer :

Neil a Laplante dávají čtvrtý typ [5] [6] :

Navíc byly popsány anti-vzory pro jednotlivé informační technologie , jako jsou [6] :

Vývojové antivzory

Technické problémy a řešení, kterými se programátoři zabývají [6] :

Anti-vzory v objektově orientovaném programování

Antivzory při psaní kódu

Metodologické antivzory

Anti-vzory správy konfigurace

Různé

Architektonické anti-vzory

Typické problémy spojené se strukturou systému [6] :

Organizační anti-vzory

Problémy, kterým čelí manažeři (nebo skupiny manažerů) [6] :

Neil a LaPlante poskytují následující antivzory [5] :

Antivzory prostředí

Problémy způsobené dominantní strukturou a sociálním modelem organizace, které jsou výsledkem veřejné politiky v organizaci [15] [6] [5] [16] :

Viz také

Poznámky

  1. Budgen, D. Návrh softwaru. - Addison-Wesley, 2003. - ISBN 0-201-72219-4 .
  2. Brown, 1998 , kapitola 2.
  3. Smith CU, 2000 .
  4. http://c2.com/cgi/wiki?AntiPattern . Společnost Cunningham & Cunningham Inc. . Získáno 15. února 2006. Archivováno z originálu 3. dubna 2005.
  5. 1 2 3 Neill, Laplante, 2005 .
  6. 1 2 3 4 5 6 Settas, 2011 .
  7. Miroslav Kis. Antipatterny informační bezpečnosti v inženýrství softwarových požadavků. In Proceedings of the 9th Conference on Pattern Language of Programs (Plop), 2002.
  8. John Long. Softwarové opětovné použití antivzorů. V ACM SIGSOFT Software Engineering Notes, svazek 26, strana 4, červenec 2001.
  9. Paula Kotze, Karen Renaud a Judy van Biljona. Nedělejte to – úskalí používání anti-vzorců při výuce principů interakce člověk-počítač. Computers and Education, 50(3):979-1008, duben 2008
  10. J. Krai a M. Zemlicka. Nejdůležitější antivzory orientované na služby. Ve sborníku z Mezinárodní konference o pokrokech softwarového inženýrství (ICSEA), 2007.
  11. P. A. Laplante, R. R. Hoffman a G. Klein. Antipatterny při tvorbě inteligentních systémů. IEEE Intelligent Systems, 22:91-95, 2007.
  12. ↑ 1 2 Rajiv Ramnath, Cheyney Loffing. Začínáme s programováním iOS pro figuríny . — John Wiley & Sons, 2014-04-14. - S. 105. - 470 s. — ISBN 9781118799277 . Archivováno 23. července 2016 na Wayback Machine
  13. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 William J. Brown. AntiPatterns: Refaktoring softwaru, architektur a projektů v krizi . — Wiley, 1998-04-03. — 156 str. — ISBN 0-471-19713-0. Archivováno 22. prosince 2015 na Wayback Machine
  14. Gary McLean Hall. Adaptivní kód přes C#: Agilní kódování s návrhovými vzory a SOLID principy. - Microsoft Press, 2014. - S. 267-268. — ISBN 978-0735683204 .
  15. Originál: sociálně-politické síly
  16. Phillip Laplante Hořící pytel hnoje – a další environmentální antipatterny Archivováno 19. září 2015 na Wayback Machine ACM Queue 30. listopadu 2004 Volume 2, issue 7

Literatura

Odkazy