Kargokultické programování

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Kargoklutické programování je označení pro styl programování charakterizovaný rituálním začleněním kódu nebo algoritmů, které neslouží žádnému účelu; tento styl je příznačný pro programátora, kterému nerozumí problému či chybě, které se pokouší vyřešit. Jako příklad je možné uvést zkopírování kusu kódu z jednoho místa na druhé s minimálním pochopením toho, jak funguje, nebo zda je to opravdu nutné.

Za kargokultické programování je také možné označit použití návrhového vzoru nebo stylu kódování bez pochopení důvodů pro jeho použití. Příkladem může být přidání zbytečných komentářů k samovysvětlujícímu kódu, přílišné dodržování konvencí programovacího paradigmatu nebo volání dealokačních rutin pro objekty, které maže garbage collector.

Dalším znakem kargokultického programování může být obsedantní a nadbytečná kontrola nulových hodnot nebo testování, zda jsou pole či kolekce prázdná před průchodem jejích hodnot ve smyčce. Zbytné řádky kódu zhoršují jeho čitelnost a často ztěžují pochopení významu chybových zpráv nebo zakrývají skutečnou příčinu nefukčnosti algoritmu či programu.

Původ[editovat | editovat zdroj]

Příklad kargokultu na ostrově Tanna, Vanuatu

Termín kargokult je idiom, odkazující se na domorodá náboženství, která vyrostla v jižním Pacifiku po druhé světové válce. Praxe těchto skupin se soustředily na napodobování letištních a dalších struktur, objektů a postupů v naději, že tak budou svolány božské letouny, které během války přinesly úžasný náklad. Použití termínu v počítačovém programování pravděpodobně pochází z charakterizace Richarda Feynmana popisující kargokultickou vědu.

Kargokultické softwarové inženýrství[editovat | editovat zdroj]

V softwarovém inženýrství se používá příbuzný termín kargokultické softwarové inženýrství, vytvořený Stevem McConnellem.[1]

McConnell popisuje softwarové domy či organizace, které se pokoušejí napodobit úspěšnější konkurenty buď otrockým následováním jejich vývojových procesů, aniž by pochopily důvody, které za nimi jsou. Nebo požadují po zaměstnancích, aby pracovali v rámci neplacených přesčasů - bez uznání, že v úspěšných organizacích je většinou tato praxe důsledkem vysoké motivace zaměstnanců než aby byla příčinou úspěchu dané společnosti.

McConnell tvrdí, že pro úspěch projektu je rozhodující kompetence řešitelského týmu bez ohledu na použitý vývojový přístup; dále tvrdí, že nekompetentní „podvodné organizace“ (které pouze napodobují formu úspěšných organizací pro vývoj softwaru) se ve skutečnosti zabývají tím, co nazývá kargokultickým softwarovým inženýrstvím.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Cargo cult programming na anglické Wikipedii.

Související články[editovat | editovat zdroj]