Інші відповіді вже дуже хороші, і я знаю, що ваш приклад є лише прикладом, але я хочу зазначити велику частину цього процесу, про яку ще не йшлося:
Вам потрібно визначити свої припущення, а потім протестувати ці припущення на кутових випадках.
Дивлячись на ваш приклад, я бачу пару припущень:
- Рекурсивний підхід з часом призведе до помилки.
- Цю помилку ніхто не побачить, оскільки для відтворення відео потрібно занадто багато часу, щоб досягти межі стека.
Інші люди обговорили перше припущення, але подивіться на друге припущення: що робити, якщо моє відео - лише частка секунди?
І звичайно, можливо, це не дуже поширений випадок використання. Але ви справді впевнені, що ніхто не завантажить дуже коротке відео? Ви припускаєте, що відео мінімальна тривалість, і ви, мабуть, навіть не здогадувались, що щось припускаєте! Чи може це припущення викликати інші помилки в інших місцях вашої програми?
Невідомі припущення - це величезне джерело помилок.
Як я вже говорив, я знаю, що ваш приклад - це лише приклад, але цей процес виявлення ваших припущень (який часто важче, ніж це звучить), а потім роздумування про винятки з цих припущень є величезним фактором для вирішення питання, де витратити свій час.
Отже, якщо ви думаєте, що "мені не слід було б це робити, тому що це ніколи не станеться", тоді вам знадобиться трохи часу, щоб справді вивчити це припущення. Ви часто будете думати про кутові випадки, які можуть бути більш поширеними, ніж ви спочатку думали.
Якщо говорити, є момент, коли це стає вправою у марності. Вам, мабуть, все одно, чи ваша програма JavaScript ідеально працює на калькуляторі TI-89, тому витрачати на це витрату будь-якої кількості часу.
Інші відповіді це вже висвітлювали, але виходити з цього рядка між "це важливо" і "це марно витрачати час" не є точною наукою, і це залежить від безлічі факторів, які можуть бути абсолютно різними від одного особа чи компанія іншій.
Але величезна частина цього процесу спочатку визначає ваші припущення, а потім намагається визнати винятки з цих припущень.