Что такое тех.долг

Ответ

Ответ не найден

Ответ 18+ 🔞

Ну, представляешь, сижу я тут, разбираюсь с очередной дичью в коде, и тут такое — ебать мои старые костыли! История, как с этим хуем в пальто, который решил, что он самый умный.

В общем, есть у меня функция, которая должна считать сумму массива. Проще пареной репы, да? Но нет же, какой-то умник решил её «оптимизировать». Смотрю я на этот код, и у меня волнение ебать начинается.

function calculateSum(arr) {
    let total = 0;
    for (let i = 0; i < arr.length; i++) {
        total += arr[i];
    }
    return total;
}

Всё нормально, всё работает. Но тут приходит наш герой, полупидор местный, и говорит: «Да это неоптимально! Надо через рекурсию! Это же круто!». И накодил вот такое чудо:

function calculateSumRecursive(arr, index = 0) {
    if (index >= arr.length) {
        return 0;
    }
    return arr[index] + calculateSumRecursive(arr, index + 1);
}

Я смотрю на это и думаю: «Чувак, ты в своём уме?». Для массива из десяти элементов — ладно, терпимо. А если там овердохуища данных? Стек вызовов просто накроется медным тазом, и будет тебе хиросима и нигерсраки в консоли! Зачем, спрашивается, из пушки по воробьям стрелять? Простой цикл — быстро, понятно, надёжно. А эта рекурсия — чистая мартышлюшка, только для галочки, чтобы умным казаться.

И самое пиздецкое — он ещё и гордится! Говорит: «Я же устранил мутацию переменной i!». Да похуй! Мутация эта никого не ебёт в таком простом цикле. Ты вместо потенциального переполнения стека и падения производительности на больших данных получил какую-то хитрожопую, нечитаемую хуйню. Доверия к такому коду — ноль ебать.

Вот и получается, что иногда самое простое решение — оно и есть самое правильное. Не надо выёбываться без причины. А то получится, как с тем чуваком, который отверткой гвозди забивает. Вроде и забил, но выглядит как полный распиздяй, и всем вокруг только терпения испытывать.