Sadržaj:
Definicija - Što znači tehnički dug?
Tehnički dug koncept je u programiranju koji odražava dodatni razvojni posao koji nastaje kada se koristi kôd koji je u kratkom roku lako implementirati umjesto primjene najboljeg cjelovitog rješenja.
Tehnički dug obično je povezan s ekstremnim programiranjem, posebno u kontekstu refaktoringa. Odnosno, podrazumijeva da je potrebno restrukturiranje postojećeg koda (refaktoring) kao dijela razvojnog procesa. Prema ovoj liniji razmišljanja ponovni faktoring nije samo rezultat loše napisanog koda, već se provodi i na temelju razvijajućeg razumijevanja problema i najboljeg načina za rješenje tog problema.
Tehnički dug također može biti poznat i kao dizajnerski dug.
Tehopedia objašnjava tehnički dug
Izraz je skovao Ward Cunningham, programer koji je također poznat po razvoju prvog wikija. Tehnički dug je metafora koja razvoj softvera izjednačava s financijskim dugom. Zamislite da imate projekt koji ima dvije potencijalne mogućnosti. Jedno je brzo i lako, ali u budućnosti će trebati promjene. Drugi ima bolji dizajn, ali trebat će više vremena za implementaciju. U razvoju, oslobađanje koda kao brzog i jednostavnog pristupa nalik je stvaranju duga - dolazi s obvezom kamate koja, zbog tehničkog duga, dolazi u obliku dodatnog rada u budućnosti. Odvojiti vrijeme za refaktor istovjetno je plaćanju glavnice. Iako je ovo kratkoročno potrebno vrijeme, ono smanjuje i buduća plaćanja kamata.
Ward Cunningham opisuje ovaj koncept 1992. godine kako slijedi:
"Prva isporuka koda je poput stvaranja duga. Mali dug ubrzava razvoj sve dok se brzo vraća s prepisivanjem. Predmeti čine trošak ove transakcije podnošljivim. Opasnost nastaje kada dug ne bude vraćen. Svake minute utrošen na ne sasvim ispravan kôd, računa se na kamate na taj dug. Čitave inženjerske organizacije mogu se zaustaviti pod teretom duga nekonsolidirane implementacije, orijentirane na objekte ili na neki drugi način. "
Koncept ne znači da se dug nikada ne bi trebao pojaviti. Baš kao što poluga može pomoći tvrtki ako se pravilno koristi, brzo rješenje može značiti i brže vrijeme za tržište softverskog razvoja. Osim toga, tehnički dug nije samo loš kod. Loš kod je loš kod, a tehnički dug može proizaći iz rada dobrih programera pod nerealnim ograničenjima projekta.
