Skip Navigation
Кирилл
Кирилл @ ciricc @rmrf.club
Posts
6
Comments
0
Joined
1 wk. ago
Golang @rmrf.club
Кирилл @rmrf.club

О том, как использовать итераторы в Go

poltora.dev Где и зачем использовать итераторы в Go?

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

Где и зачем использовать итераторы в Go?
Базы данных @rmrf.club
Кирилл @rmrf.club

Metabase - инструмент для визуализации данных из нескольких баз данных

Golang @rmrf.club
Кирилл @rmrf.club

Декораторы для http.RoundTripper

Очень удобная библиотека для создания декораторов http запросов под стандартный http.RoundTripper - https://github.com/asecurityteam/transport

Всегда что-то подобное хотел запилить, но всегда что-то подобное писал с нуля, потому что не хватало времени вынести это в либу

Языки Программирования @rmrf.club
Кирилл @rmrf.club

Революционный язык программирования Unison

Наконец-то больше не нужно заниматься конвертацией типов! Чем-то напоминает язык FunC (в рамках TVM)

Веб разработка @rmrf.club
Кирилл @rmrf.club

Стоит внимания?

Интересный RPC фреймворк - https://github.com/twitchtv/twirp. Как оно?

Golang @rmrf.club
Кирилл @rmrf.club

Restate workflow фреймворк

Примерно 2 года назад я познакомился в проектом Temporal - оркестратором воркфлоу как код. Идея простая: если тебе нужно сделать отказоустойчивый, durable кусок бизнес логики, но ты не хочешь заниматься настройкой кафки и созданием своего оркестратора/саги, ты можешь просто использовать этот готовый фреймворк. Это было открытием для меня тогда.

У Temporal есть нюансы, минусы. Лично я считаю основным его минусом - high latency, который в целом можно пофиксить, но будет это костыльно (https://youtu.be/mTNUjZGTfZk?t=362). Чуть терпимее минус - магия в SDK на Go.

Недавно нашел хорошую альтернативу - Restate.dev. Пока что не сильно глубоко вдавался в то, как он работает, но все очень похоже. Основное отличие, которое бросается в глаза сразу - это отсутсвтие поллинга задач. Все задачи поступают с минимальной задержкой в воркеры и выполняются на столько быстро, на сколько это возможно, благодаря прямому запросу к воркеру от оркестратора. Думаю понятно, что это меняет всю архитектуру с ног