Search
Write a publication
Pull to refresh
1
0
Send message

Все верно. Это всего лишь частный случай применения подхода. Безусловно экономия памяти ни каким магическим способом сама по себе не появится...

К сожалению, многие студенты, воспитанные на этом утверждении, умудряются писать код, в котором внутрь генератора помещают то же самое получение всех значений разом. И их логика при этом безупречна: "Генератор же экономит память"!

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

Безусловно пример о котором мы говорите синтетический и не имеет ни какого практического применения в реальной жизни. Если есть голова на плечах и опыт, то можно большинство задач решить без использования генераторов и с низким потреблением памяти. Вот только достаточно большое количество разработчиков совершенно не думает о ресурсах. Важно познакомить с генераторами и посеять зерно о том что не стоит бездумно наполнять память данными и показать к чему это может привести. Есть масса проектов, где разработчик выбирает из базы все значения и обходит их в цикле. В результате проект работает до того момента пока данные не перестанут помещаться в памяти. Далее увидев это разработчик увеличивает память. По истечению времени все повторяется, и вот сервер уже вместо 500 рублей в месяц стоит 3000 рублей, а ведь можно было просто оптимизировать код. И в данном случае можно как раз использовать генераторы для получения данных пачками.

В презентациях по теме генераторов есть реальные примеры кода которые можно применить на практике. Например, обработка большого объема данных из базы пачками (чанками, если угодно). Скрин который Вы увидели это лишь мимолетная проверочная работа, что информация не прошла мимо ушей. Она нужна была как сигнал к тому, что мы можем перейти к Coroutine, пояснение по которым без понимания генераторов бессмысленно на мой взгляд...

Information

Rating
Does not participate
Registered
Activity