Съдържание:
Определение - Какво означава технически дълг?
Техническият дълг е концепция в програмирането, която отразява допълнителната разработка, която възниква, когато се използва лесен за изпълнение код в краткосрочен план, вместо да се прилага най-доброто цялостно решение.
Техническият дълг обикновено се свързва с екстремното програмиране, особено в контекста на рефакторинга. Тоест, това предполага, че е необходимо преструктуриране на съществуващ код (рефакторинг) като част от процеса на разработване. Съгласно този ред на мислене рефакторингът е не само резултат от лошо написан код, но и се прави въз основа на развиващото се разбиране на проблема и най-добрия начин за решаване на този проблем.
Техническият дълг може да бъде известен също като дълг за проектиране.
Техопедия обяснява техническия дълг
Терминът е въведен от Уорд Канингам, програмист, известен също с разработването на първата wiki. Техническият дълг е метафора, която приравнява разработката на софтуер към финансовия дълг. Представете си, че имате проект, който има две потенциални възможности. Единият е бърз и лесен, но ще изисква модификация в бъдеще. Другият има по-добър дизайн, но ще отнеме повече време за изпълнение. В развитието си освобождаването на код като бърз и лесен подход е като възникване на дълг - идва със задължението за лихва, което за технически дълг идва под формата на допълнителна работа в бъдеще. Отделянето на време за рефактор е равносилно на изплащане на главницата. Въпреки че това отнема време в краткосрочен план, то също намалява бъдещите лихвени плащания.
Уорд Канингам описва тази концепция през 1992 г. по следния начин:
"Кодът за първоначално изпращане е като навлизане в дълг. Малък дълг ускорява развитието, стига да се изплати бързо с пренаписване. Обектите правят цената на тази транзакция поносима. Опасността възниква, когато дългът не бъде погасен. Всяка минута изразходваната за не съвсем правилния код се счита за лихва върху този дълг. Цели инженерни организации могат да бъдат изправени в състояние на покой под натоварването на дълга на неконсолидирана реализация, ориентирана към обект или по друг начин. "
Концепцията не означава, че дългът никога не трябва да възниква. Точно както лостът може да помогне на компанията, когато се използва правилно, бързото решение може да означава по-бързо време за предлагане на пазара в разработката на софтуер. Освен това техническият дълг не е само лош код. Лош код е лош код и технически дълг може да произтича от работата на добри програмисти при нереалистични ограничения на проекта.
