В данном докладе я расскажу про дизайн и эволюцию итераторов в Go.
Начну с того, что про них писали в "Паттернах проектирования" и какими были итераторы в Go 1.0. Как разработчики пришли к текущему дизайну "range-over-func" и и зачем нам переделали циклы "for". Почему большинство Go разработчиков уже пишет итераторы, но еще не знает об этом. Расскажу и про то, как это работает под капотом и насколько все хорошо/плохо с производительностью. Почему всё это не только про скорость. И в заключении расскажу о том, как мы используем итераторы в MWS Cloud Platform и где их использовать не стоит.