Imagor - это быстрый и лёгкий сервер для обработки изображений на Go. Он умеет делать ресайз, кадрирование, фильтры и трансформации «на лету». Всё строится вокруг URL-запросов, что удобно для интеграции с CDN и микросервисами.
Особенности:
- Поддержка форматов JPEG, PNG, GIF, WebP, AVIF.
- Возможность работы с удалёнными источниками (S3, GCS и др.).
- Кэширование результатов.
- Расширяемая архитектура с плагинами.
- Совместимость с Thumbor https://github.com/thumbor/thumbor.
https://github.com/cshum/imagor
👉 @golang_lib
Особенности:
- Поддержка форматов JPEG, PNG, GIF, WebP, AVIF.
- Возможность работы с удалёнными источниками (S3, GCS и др.).
- Кэширование результатов.
- Расширяемая архитектура с плагинами.
- Совместимость с Thumbor https://github.com/thumbor/thumbor.
https://github.com/cshum/imagor
👉 @golang_lib
👍3
Go команда представила экспериментальный пакет
Он решает давние проблемы стандартного
- Более строгая типобезопасность.
- Улучшенная производительность при маршалинге/анмаршалинге.
- Чёткая работа с
- Новый API, учитывающий опыт использования старой версии.
- Возможность расширяемости и будущих улучшений без «поломки» совместимости.
Старый пакет
https://go.dev/blog/jsonv2-exp
👉 @golang_lib
encoding/json/v2
.Он решает давние проблемы стандартного
encoding/json
:- Более строгая типобезопасность.
- Улучшенная производительность при маршалинге/анмаршалинге.
- Чёткая работа с
null
, отсутствием полей и нулевыми значениями.- Новый API, учитывающий опыт использования старой версии.
- Возможность расширяемости и будущих улучшений без «поломки» совместимости.
Старый пакет
encoding/json
никуда не исчезает - он остаётся стабильным. Но постепенно рекомендуется тестировать v2
и давать обратную связь.https://go.dev/blog/jsonv2-exp
👉 @golang_lib
👍3
Хотите попробовать себя в бэкенде, но страшно уйти от фронта?
Это чувство знакомо каждому фронтендеру: сложно оставить родной JS и Webpack и отправиться в неизведанный мир API, баз данных и Docker.
На открытом уроке мы покажем, что переход на Golang — это проще, чем кажется. Вместе разберём, как перенести знакомые фронтендеру навыки в мир Go, создадим работающий API всего за 15 минут и убедимся, что Go — это удобно, логично и выгодно.
📅 Не упускайте шанс открыть для себя новые горизонты в разработке! Встречаемся 17 сентября в 20:00 МСК.
👉 Запишитесь на открытый урок → https://vk.cc/cPxWno
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Это чувство знакомо каждому фронтендеру: сложно оставить родной JS и Webpack и отправиться в неизведанный мир API, баз данных и Docker.
На открытом уроке мы покажем, что переход на Golang — это проще, чем кажется. Вместе разберём, как перенести знакомые фронтендеру навыки в мир Go, создадим работающий API всего за 15 минут и убедимся, что Go — это удобно, логично и выгодно.
📅 Не упускайте шанс открыть для себя новые горизонты в разработке! Встречаемся 17 сентября в 20:00 МСК.
👉 Запишитесь на открытый урок → https://vk.cc/cPxWno
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Создание простой виртуальной машины
Вдохновившись виртуальными машинами (VM), такими как WebAssembly и Ethereum Virtual Machine, я решил бросить себе вызов и создать упрощённую версию. В этой статье я расскажу о процессе реализации виртуальной машины на Go, которая работает с компилированным байткодом и выполняет базовые арифметические операции.
Стековая или регистровая машина?
При изучении базовой архитектуры виртуальных машин можно выделить два основных подхода: стековая машина и регистровая машина.
Стековая машина, как, например, WebAssembly, работает по принципу последний вошёл — первый вышел (LIFO). Инструкции в этой модели в основном оперируют данными, находящимися на вершине стека. Такой подход часто используется при реализации виртуальных машин благодаря своей простоте и лёгкости в реализации.
Регистровая машина ближе по архитектуре к современным процессорам. Она использует набор регистров (аппаратно поддерживаемых), с которыми инструкции могут работать напрямую. Этот подход может повысить скорость выполнения за счёт сокращения избыточного перемещения данных и даёт больше возможностей для оптимизации кода на этапе компиляции.
Я решил использовать стековую архитектуру, так как её простота и линейный, предсказуемый поток выполнения значительно упрощают как процесс разработки, так и отладку.
https://blog.phakorn.com/posts/2025/building-a-simple-vm/
👉 @golang_lib
Вдохновившись виртуальными машинами (VM), такими как WebAssembly и Ethereum Virtual Machine, я решил бросить себе вызов и создать упрощённую версию. В этой статье я расскажу о процессе реализации виртуальной машины на Go, которая работает с компилированным байткодом и выполняет базовые арифметические операции.
Стековая или регистровая машина?
При изучении базовой архитектуры виртуальных машин можно выделить два основных подхода: стековая машина и регистровая машина.
Стековая машина, как, например, WebAssembly, работает по принципу последний вошёл — первый вышел (LIFO). Инструкции в этой модели в основном оперируют данными, находящимися на вершине стека. Такой подход часто используется при реализации виртуальных машин благодаря своей простоте и лёгкости в реализации.
Регистровая машина ближе по архитектуре к современным процессорам. Она использует набор регистров (аппаратно поддерживаемых), с которыми инструкции могут работать напрямую. Этот подход может повысить скорость выполнения за счёт сокращения избыточного перемещения данных и даёт больше возможностей для оптимизации кода на этапе компиляции.
Я решил использовать стековую архитектуру, так как её простота и линейный, предсказуемый поток выполнения значительно упрощают как процесс разработки, так и отладку.
https://blog.phakorn.com/posts/2025/building-a-simple-vm/
👉 @golang_lib
👍2
mtlog — Message Template Logging для Go
Это высокопроизводительная библиотека структурированного логирования для Go, вдохновлённая Serilog. Она привносит в экосистему Go message templates и архитектуру на основе конвейеров (pipeline), обеспечивая нулевые аллокации для простых операций логирования и мощные возможности для сложных сценариев.
https://github.com/willibrandon/mtlog
👉 @golang_lib
Это высокопроизводительная библиотека структурированного логирования для Go, вдохновлённая Serilog. Она привносит в экосистему Go message templates и архитектуру на основе конвейеров (pipeline), обеспечивая нулевые аллокации для простых операций логирования и мощные возможности для сложных сценариев.
https://github.com/willibrandon/mtlog
👉 @golang_lib
👍3
Backend-митап в Москве: многопоточность, микросервисы, prompt engineering и System Design
• 20 сентября
• Пространство «Весна»
Если хочешь разобраться глубже в backend-разработке, системном дизайне, алгоритмах и многопоточке — приходи.
Говорим по существу — про то, что важно в работе и на собеседованиях:
– как строить микросервисы, не превращая код в ад;
– что ждёт на System Design-интервью и как его пройти.
– как готовиться к собесам и системно учить алгоритмы;
– как устроена модель памяти Go и где тебя может поджидать баг.
🎓 Программа
15:00 – 15:30 – Общий сбор
15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства
15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс) «Особенности и ловушки модели памяти в Go: тайны синхронизации»
16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech) «Пишем микросервисы на Go как в BigTech, с нуля»
17:10 – 17:30 – Перерыв на фуршет
17:30 – 18:10 – Сергей Венецкий (ex-разработчик в EPAM) «LLM под капотом: как правильно писать промпты»
18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс) «Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»
18:50 – 19:00 – Завершение контентной части, фотосесия
19:00 – 20:00 – Фуршет и нетворкинг на площадке
20:00 - Afterparty - по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке
🎁 Подарки за лучшие вопросы:
— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования от интервьюверов из BigTech
— скидки на обучение в нашей школе
Место: Пространство «Весна»
Спартаковский переулок 2с1, подъезд 7
5 минут от м. Красносельская
7 минут от м. Бауманская
❗️ Количество мест ограничено - приобрести билет можно по ссылке
• 20 сентября
• Пространство «Весна»
Если хочешь разобраться глубже в backend-разработке, системном дизайне, алгоритмах и многопоточке — приходи.
Говорим по существу — про то, что важно в работе и на собеседованиях:
– как строить микросервисы, не превращая код в ад;
– что ждёт на System Design-интервью и как его пройти.
– как готовиться к собесам и системно учить алгоритмы;
– как устроена модель памяти Go и где тебя может поджидать баг.
15:00 – 15:30 – Общий сбор
15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства
15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс) «Особенности и ловушки модели памяти в Go: тайны синхронизации»
16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech) «Пишем микросервисы на Go как в BigTech, с нуля»
17:10 – 17:30 – Перерыв на фуршет
17:30 – 18:10 – Сергей Венецкий (ex-разработчик в EPAM) «LLM под капотом: как правильно писать промпты»
18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс) «Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»
18:50 – 19:00 – Завершение контентной части, фотосесия
19:00 – 20:00 – Фуршет и нетворкинг на площадке
20:00 - Afterparty - по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке
🎁 Подарки за лучшие вопросы:
— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования от интервьюверов из BigTech
— скидки на обучение в нашей школе
Место: Пространство «Весна»
Спартаковский переулок 2с1, подъезд 7
5 минут от м. Красносельская
7 минут от м. Бауманская
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Media is too big
VIEW IN TELEGRAM
Разбор кода: консольная утилита на Go + PostgreSQL
А вот и второй выпуск нашего спецпроекта, в котором опытные ребята из Яндекса разбирают код начинающих разработчиков и показывают, что в нём сделано хорошо, а что можно улучшить.
На этот раз Дмитрий Кара, старший разработчик бэкенда в команде Яндекс Игр, разбирает консольную утилиту gobserver. С её помощью можно следить за изменениями в различных директориях и выполнять произвольный набор консольных команд. В выпуске Дмитрий даёт много полезных советов и рекомендаций для джунов. Приятного просмотра!
https://github.com/gingersamurai/gobserver
👉 @golang_lib
А вот и второй выпуск нашего спецпроекта, в котором опытные ребята из Яндекса разбирают код начинающих разработчиков и показывают, что в нём сделано хорошо, а что можно улучшить.
На этот раз Дмитрий Кара, старший разработчик бэкенда в команде Яндекс Игр, разбирает консольную утилиту gobserver. С её помощью можно следить за изменениями в различных директориях и выполнять произвольный набор консольных команд. В выпуске Дмитрий даёт много полезных советов и рекомендаций для джунов. Приятного просмотра!
https://github.com/gingersamurai/gobserver
👉 @golang_lib
👍4
Go sync.Mutex: Normal and Starvation Mode
Go sync.WaitGroup and The Alignment Problem
Go sync.Pool and the Mechanics Behind It (We’re here)
Go sync.Cond, the Most Overlooked Sync Mechanism
Go sync.Map: The Right Tool for the Right Job
Go Sync.Once is Simple… Does It Really?
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-sync-mutex/index.html
👉 @golang_lib
Go sync.WaitGroup and The Alignment Problem
Go sync.Pool and the Mechanics Behind It (We’re here)
Go sync.Cond, the Most Overlooked Sync Mechanism
Go sync.Map: The Right Tool for the Right Job
Go Sync.Once is Simple… Does It Really?
Go Singleflight Melts in Your Code, Not in Your DB
https://victoriametrics.com/blog/go-sync-mutex/index.html
👉 @golang_lib
👍3
🚀 Отличная статья для тех, кто работает с финансовыми системами и хочет разобраться в стандарте ISO 8583 с помощью Go.
Автор пошагово показывает:
- как устроены ISO 8583 сообщения;
- какие поля и структуры применяются;
- как с ними работать в реальных платежных системах;
- примеры реализации парсинга и сборки сообщений на Golang.
Полезно для бэкенд-разработчиков, которые занимаются интеграциями с банками и процессингами.
https://alovak.com/2024/08/15/mastering-iso-8583-messages-with-golang/
👉 @golang_lib
Автор пошагово показывает:
- как устроены ISO 8583 сообщения;
- какие поля и структуры применяются;
- как с ними работать в реальных платежных системах;
- примеры реализации парсинга и сборки сообщений на Golang.
Полезно для бэкенд-разработчиков, которые занимаются интеграциями с банками и процессингами.
https://alovak.com/2024/08/15/mastering-iso-8583-messages-with-golang/
👉 @golang_lib
👍2
В хабе на Хабр «Разработка публичных облаков» — свежие статьи
от инженеров MWS Cloud Platform⬜️ .
Ценности решают. Как пять принципов помогли вырасти с 150 до 520 человек и запустить IaaS за год.
Binapi и VPP. Программируем SR Policy на Go, разбираем грабли и показываем рабочий прототип для traffic engineering.
Control plane под замком. Зачем прятать мастера Kubernetes и какие решения мы протестировали в Managed Kubernetes.
SPDK для VM. Почему стандартного QEMU мало и как мы ускоряли диски в публичном облаке.
eBPF & Security. Новые возможности для Cilium и Falco и новые риски: атаки на maps, io_uring и rootkits.
🔗 Подпишись на облачный хаб MWS — там регулярно рассказываем, как строим новое облако с нуля.
от инженеров MWS Cloud Platform
Ценности решают. Как пять принципов помогли вырасти с 150 до 520 человек и запустить IaaS за год.
Binapi и VPP. Программируем SR Policy на Go, разбираем грабли и показываем рабочий прототип для traffic engineering.
Control plane под замком. Зачем прятать мастера Kubernetes и какие решения мы протестировали в Managed Kubernetes.
SPDK для VM. Почему стандартного QEMU мало и как мы ускоряли диски в публичном облаке.
eBPF & Security. Новые возможности для Cilium и Falco и новые риски: атаки на maps, io_uring и rootkits.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM