TGViewer
Golang Юниор Golang Юниор @golangprofi · 4.98K subscribers
Post #762 1.35K
👣 GO 1.23 НАВЯЗЫВАЕТ CALLBACK-ИТЕРАТОРЫ - И ЭТО СПОРНАЯ КОНСТРУКЦИЯ

В стандартной библиотеке Go уже давно есть паттерн callback-итерации - тот же sync.Map или fs.WalkDir. Теперь это фактически закрепили через iter.Seq.

Но проблема в том, что такой подход ломает привычную для Go структуру.

Go - язык максимально императивный и прямолинейный.

Разраб по дефолты планирует контролировать поток выполнения, а не передавать его внутрь callback и надеяться, что всё сработает как надо.

Поэтому для итерации гораздо естественнее выглядит явный iterator object:


.Iter() → for it.Next() → .Key() / .Value()


Это тот же паттерн, который уже много лет существует в stdlib:
• bufio.Scanner
• sql.Rows


И он отлично себя показал - простой, понятный, без скрытого поведения.

В отличие от callback-подхода:
• control flow остаётся линейным
• defer ведёт себя ожидаемо
• early return не превращается в квест
• panic не теряется по дороге

Именно поэтому многие сознательно выбирают этот паттерн как стандарт.

Например, в Solod - подмножестве Go с компиляцией в C - используется именно iterator object.
И это решение ощущается гораздо ближе к духу Go.

Вопрос в том, что важнее: жёсткий контроль над выполнением или универсальная композиция через callbacks.
  • 👍 2
More from @golangprofi
  1. Sep 16, 2026Golang for Jobseekers Автор: Bin Noorazman Hairizuan Год издания: 2023 #go #en Скачать кни…
  2. Sep 16, 2026Разница между Go-разработчиком с зарплатой в 100–200 тысяч и 500 тысяч не в количестве нап…
  3. Sep 14, 2026⚡️ Вакансии по Go за неделю: 6️⃣ Senior Go Developer GGR Global Senior · Remote · $4 000 –…
  4. Sep 13, 2026⚡️ Google выпустили официальный пакет для работы с JSON Schema в Go Это библиотека для вал…
  5. Sep 13, 2026⚙️ System Design: проектирование масштабируемых систем — новый курс на Mentorix Нагрузка,…
  6. Sep 7, 2026⚙️ Вакансии по Go за неделю: 📥 Стажер Go-разработчик Авито Part time · Junior · Hybrid 📥…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →