Зміст:
Визначення - Що означає технічний борг?
Технічна заборгованість - це концепція програмування, яка відображає додаткову роботу з розробки, яка виникає, коли код, який легко реалізувати в короткому періоді, замість застосування найкращого загального рішення.
Технічна заборгованість зазвичай пов'язана з екстремальним програмуванням, особливо в умовах рефакторингу. Тобто, це означає, що в рамках процесу розробки потрібна реструктуризація існуючого коду (рефакторинг). Згідно з цим напрямком мислення, рефакторинг - це не лише результат погано написаного коду, але також робиться на основі розвивається розуміння проблеми та найкращого способу вирішення цієї проблеми.
Технічний борг також може бути відомий як проектний борг.
Техопедія пояснює технічний борг
Цей термін був введений Вордом Каннінгем, програмістом, який також відомий розробкою першої вікі. Технічний борг - це метафора, яка прирівнює розробку програмного забезпечення до фінансової заборгованості. Уявіть, що у вас є проект, який має два потенційні варіанти. Один швидкий і простий, але потребуватиме змін у майбутньому. Інший має кращий дизайн, але знадобиться більше часу для його втілення. У розробці вивільнення коду як швидкого і простого підходу схоже на запозичення боргу - воно пов'язане з зобов'язанням відсотків, яке за технічну заборгованість надходить у вигляді додаткової роботи в майбутньому. Витрата часу на рефактор рівнозначна сплаті основної суми. Хоча це потребує часу в короткостроковому періоді, воно також зменшує майбутні виплати відсотків.
Уорд Каннінгем описує цю концепцію в 1992 році так:
"Код першої доставки - це як запозичення боргу. Невелика заборгованість прискорює розвиток до тих пір, поки вона буде негайно повернена з перезаписом. Об'єкти роблять вартість цієї транзакції прийнятною. Небезпека виникає, коли борг не погашається. Щохвилини витрачені на не зовсім правильний код зараховуються як відсоток за цим боргом. Цілі інженерні організації можуть бути виведені з режиму очікування під навантаженням боргу неконсолідованої реалізації, орієнтованої на об'єкти чи іншим чином ".
Ця концепція не означає, що борг ніколи не повинен виникати. Подібно до того, як важелі можуть допомогти компанії при правильному використанні, швидке рішення може означати швидший вихід на ринок розробки програмного забезпечення. Крім того, технічна заборгованість - це не просто поганий код. Поганий код - це поганий код, а технічна заборгованість може виникнути в результаті роботи хороших програмістів за нереальних обмежень проекту.