Ответ
Ответ не найден
Ответ 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!». Да похуй! Мутация эта никого не ебёт в таком простом цикле. Ты вместо потенциального переполнения стека и падения производительности на больших данных получил какую-то хитрожопую, нечитаемую хуйню. Доверия к такому коду — ноль ебать.
Вот и получается, что иногда самое простое решение — оно и есть самое правильное. Не надо выёбываться без причины. А то получится, как с тем чуваком, который отверткой гвозди забивает. Вроде и забил, но выглядит как полный распиздяй, и всем вокруг только терпения испытывать.