Библиотека Go (Golang) разработчика
2.63K subscribers
290 photos
96 videos
29 files
354 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Imagor - это быстрый и лёгкий сервер для обработки изображений на Go. Он умеет делать ресайз, кадрирование, фильтры и трансформации «на лету». Всё строится вокруг URL-запросов, что удобно для интеграции с CDN и микросервисами.

Особенности:

- Поддержка форматов JPEG, PNG, GIF, WebP, AVIF.
- Возможность работы с удалёнными источниками (S3, GCS и др.).
- Кэширование результатов.
- Расширяемая архитектура с плагинами.
- Совместимость с Thumbor https://github.com/thumbor/thumbor.

https://github.com/cshum/imagor

👉 @golang_lib
👍3
Go команда представила экспериментальный пакет 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
Создание простой виртуальной машины

Вдохновившись виртуальными машинами (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
👍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 минут от м. Бауманская

❗️Количество мест ограничено - приобрести билет можно по ссылке
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
👍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
👍3
🚀 Отличная статья для тех, кто работает с финансовыми системами и хочет разобраться в стандарте ISO 8583 с помощью Go.

Автор пошагово показывает:

- как устроены 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 — там регулярно рассказываем, как строим новое облако с нуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM