Obsah:
Definice - Co znamená technický dluh?
Technický dluh je koncept v programování, který odráží další vývojové práce, které vznikají, když se použije kód, který je snadno implementovatelný v krátkodobém horizontu, místo použití nejlepšího celkového řešení.
Technický dluh je obvykle spojen s extrémním programováním, zejména v souvislosti s refaktoringem. To znamená, že v rámci procesu vývoje je vyžadována restrukturalizace stávajícího kódu (refaktoring). Podle této linie myšlení není refaktoring pouze výsledkem špatně napsaného kódu, ale je také prováděn na základě vyvíjejícího se porozumění problému a nejlepšího způsobu, jak tento problém vyřešit.
Technický dluh může být také známý jako konstrukční dluh.
Techopedia vysvětluje technický dluh
Termín byl vytvořen Wardem Cunninghamem, programátorem, který je také známý vývojem první wiki. Technický dluh je metafora, která přirovnává vývoj softwaru k finančnímu dluhu. Představte si, že máte projekt, který má dvě možnosti. Jeden je rychlý a snadný, ale v budoucnu bude vyžadovat úpravy. Druhý má lepší design, ale jeho implementace bude trvat déle. Ve vývoji je uvolňování kódu jako rychlý a snadný přístup jako vznikající dluh - přichází s povinností úroku, která pro technický dluh přichází v budoucnu ve formě práce navíc. Vezměte si čas na refactor je ekvivalent k splácení jistiny. I když to z krátkodobého hlediska vyžaduje určitý čas, snižuje to také budoucí platby úroků.
Ward Cunningham popisuje tento koncept v roce 1992 následovně:
„Expedice prvního kódu je jako jít do dluhu. Malý dluh urychluje vývoj, pokud je rychle splacen přepisem. Objekty způsobují, že náklady na tuto transakci jsou tolerovatelné. Nebezpečí nastává, když dluh není splacen. Každou minutu vynaložené na nespravedlivý kód se počítá jako úrok z tohoto dluhu. Celé inženýrské organizace mohou být postaveny do klidového stavu pod dluhovým zatížením nekonsolidované implementace, objektově orientované nebo jinak. "
Tento koncept neznamená, že by nikdy neměl vzniknout dluh. Stejně jako může páka pomoci společnosti při správném použití, rychlé řešení může znamenat rychlejší čas na uvedení na trh ve vývoji softwaru. Navíc technický dluh není jen špatný kód. Špatný kód je špatný kód a technický dluh může být výsledkem práce dobrých programátorů v nerealistických projektových omezeních.