Банальный цикл все еще рулит


3 0

Сейчас смотрю отличное видео Coding tech и под названием Is Reduce() Bad? и в нем дается несколько хороших примеров, когда reduce приводит к тому, что его вызов становится плохо читабельным, а результат давит на производительность. Я думал, что это только я не понимаю, зачем суют reducce там, где он на фиг не нужен. И как же приятно было слышать, что старый и проверенный loop на много проще читается и на много быстрее работает. 

Со всеми этими новомодными фишками типа Linq в C# народ перестал писать простые циклы, которые читаются проще. Это первое, чему учат программистов и это самое главное, что обязаны понимать все. Но почему-то все пытаются всунуть новомодные приколы и суют reduce в js там, где он не нужен и пишут linq так, что его не понятно. В общем, знающим английский очень рекомендую это видео: 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Spider_NET

28 Января 2020

За другие языки не скажу, но в JS он удобен. Конечно, если нам действительно требуется что-то аккумулировать во время цикла. В JS в большинстве случае удобней перебирать массивы с помощью методов `forEach`, `map` и т.д., чем использовать for.

В плане читабельности мне кажется тут дело привычки. Обычно в цикле немного кода, поэтому затруднений при чтении не возникает.

По поводу "быстрей" (опять же на примере JS), то это всё очень относительно и может разнится от движка. Последние тесты V8 говорят, что разницы нет. Наоборот, в некоторых случаях классический for может проиграть, из-за невозможности применить некоторые оптимизации.


NoWay

28 Января 2020

У reduce есть проблема - он постоянно создает копию массива и возвращает ее, это реально влияет на производительность, а никакой оптимизации быстрее, чем простой for быть не может. Но reduce все же можно использовать только в тех случаях, когда код реально будет более читабельным и забить на небольшое падение производительности.


Spider_NET

29 Января 2020

2NoWay, а как же иммутабельность?


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне