Forwarded from Golang
В релизе Go 1.25 представлена важная улучшенная логика работы
GOMAXPROCS в контейнеризованных средах — например, в Kubernetes.Как это работает:
- Раньше по умолчанию
GOMAXPROCS устанавливался равным числу логических CPU на хосте. - Теперь на Linux runtime автоматически учитывает CPU limits, заданные для контейнера. Если лимит меньше числа логических ядер —
GOMAXPROCS устаналивается на уровне лимита. - Более того, runtime периодически обновляет
GOMAXPROCS, если меняются доступные CPU или ограничения, без необходимости внешнего вмешательства. Почему это важно:
Ранее разработчикам приходилось использовать внешние решения вроде
uber-go/automaxprocs, чтобы вручную синхронизировать GOMAXPROCS с лимитами контейнера. Теперь runtime делает это автоматически и точнее: - Внутри контейнера Go не будет пытаться использовать все ядра хоста
- Уменьшаются лишние горутины, контекстные переключения и нагрузка на GC
Кратко: начиная с Go 1.25,
GOMAXPROCS адаптируется под реальные CPU-ресурсы контейнера — без дополнительных усилий.📌 Подробности
@golang_google
#golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7
⚡ Or-channel паттерн в Go — мощный приём для работы с конкурентностью.
Он позволяет объединять несколько done-каналов в один общий.
Как только закрывается любой из входных каналов — автоматически закрывается и новый канал.
Такой подход даёт единый сигнал для завершения или отмены операции.
#golang
Он позволяет объединять несколько done-каналов в один общий.
Как только закрывается любой из входных каналов — автоматически закрывается и новый канал.
Такой подход даёт единый сигнал для завершения или отмены операции.
#golang
🔥21🥴14👍7❤6
📌 В Go есть два разных способа собирать пути, и это важно понимать:
👉 Нужно указать путь к файлу на диске?
Используй
Он сам подставит правильные разделители:
-
-
👉 Нужно собрать путь со слешами, например для URL?
Используй
Он всегда будет использовать
⚠️ На Linux оба варианта могут выглядеть одинаково, но на Windows результат будет другим.
#golang #go #programming #backend
👉 Нужно указать путь к файлу на диске?
Используй
filepath.Join из пакета path/filepath. Он сам подставит правильные разделители:
-
/ на Linux и macOS -
\ на Windows 👉 Нужно собрать путь со слешами, например для URL?
Используй
path.Join из пакета path. Он всегда будет использовать
/ и работать одинаково на всех ОС. ⚠️ На Linux оба варианта могут выглядеть одинаково, но на Windows результат будет другим.
#golang #go #programming #backend
👍21❤2
🔧 go-update-lens — библиотека на Go для обновления «линз» (lens) и реактивного патчинга данных в структурах
📌 Что умеет:
- Позволяет динамически изменять вложенные структуры без полной перезаписи
- Поддерживает создание “линз” - функциональный подход к фокусировке на части данных
- Работает “in-place”, минимизируя копирование и сохраняя производительность
🌟 Почему это полезно:
- Упрощает работу с вложенными структурами, когда нужно изменить лишь часть
- Особенно удобно в приложениях с состоянием и реактивными моделями
- Помогает избежать boilerplate-кода для обновления вложенных полей
🔗 Репозиторий: https://github.com/PatchLens/go-update-lens
#golang #architecture #library #data #update_ops
📌 Что умеет:
- Позволяет динамически изменять вложенные структуры без полной перезаписи
- Поддерживает создание “линз” - функциональный подход к фокусировке на части данных
- Работает “in-place”, минимизируя копирование и сохраняя производительность
🌟 Почему это полезно:
- Упрощает работу с вложенными структурами, когда нужно изменить лишь часть
- Особенно удобно в приложениях с состоянием и реактивными моделями
- Помогает избежать boilerplate-кода для обновления вложенных полей
🔗 Репозиторий: https://github.com/PatchLens/go-update-lens
#golang #architecture #library #data #update_ops
❤1
Что такое Kriti Images
- Высокопроизводительный сервис для трансформации изображений в реальном времени, написанный на языке Go
- Использует URL-базированный API: параметры трансформации передаются через URL
- Открытая альтернатива коммерческим решениям вроде Cloudflare Images и ImageKit
Возможности
- Манипуляции над изображением через URL: изменение размера, обрезка (crop), поворот, размытие и др.
- Поддержка популярных форматов: JPEG, PNG, WebP
- Режимы масштабирования: contain, cover, crop, pad, squeeze, scaledown
- Корректировки цвета: яркость, контраст, насыщенность, гамма
- Настройка фона: цвета в HEX, RGB или именованные цвета
- Оптимизация под производительность и кеширование (правильные HTTP-заголовки)
#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥3🔥3🥴1
🔥 Tiny-RDM — современный кроссплатформенный менеджер для Redis!
Доступен на Mac, Windows и Linux, создан на Go и предлагает лёгкий, интуитивный интерфейс для работы с Redis-базами.
✅ Поддержка множества подключений
✅ Просмотр, редактирование и удаление ключей
✅ CLI-консоль прямо в приложении
✅ Быстрая навигация и фильтрация
🔗 Репозиторий: https://github.com/tiny-craft/tiny-rdm
#Redis #golang #opensource #devtools
Доступен на Mac, Windows и Linux, создан на Go и предлагает лёгкий, интуитивный интерфейс для работы с Redis-базами.
✅ Поддержка множества подключений
✅ Просмотр, редактирование и удаление ключей
✅ CLI-консоль прямо в приложении
✅ Быстрая навигация и фильтрация
🔗 Репозиторий: https://github.com/tiny-craft/tiny-rdm
#Redis #golang #opensource #devtools
❤5🔥1
🎮 Простой шаблон для изометрической игры на Go с использованием SDL3
Разработчик unklnik выложил минималистичный пример изометрической игры на Go, основанный на биндингах SDL3.
Этот шаблон отлично подходит, чтобы быстро разобраться с основами 2.5D-графики, камерой, тайлами и отрисовкой объектов в изометрии.
Проект демонстрирует, как работать с:
- управлением камерой и перспективой,
- изометрической сеткой и рендерингом,
- обновлением и обработкой событий в реальном времени.
Простой старт для тех, кто хочет написать свою игру или движок на Go.
📦 Репозиторий: https://github.com/unklnik/go-sdl3_isometric
#golang
Разработчик unklnik выложил минималистичный пример изометрической игры на Go, основанный на биндингах SDL3.
Этот шаблон отлично подходит, чтобы быстро разобраться с основами 2.5D-графики, камерой, тайлами и отрисовкой объектов в изометрии.
Проект демонстрирует, как работать с:
- управлением камерой и перспективой,
- изометрической сеткой и рендерингом,
- обновлением и обработкой событий в реальном времени.
Простой старт для тех, кто хочет написать свою игру или движок на Go.
📦 Репозиторий: https://github.com/unklnik/go-sdl3_isometric
#golang
🔥13❤1👍1
Goncurrently - удобный CLI-инструмент на Go для одновременного запуска нескольких команд.
Отлично подходит для локальной разработки, сборок и управления сервисами: можно поднимать несколько процессов сразу, смотреть их логи в одном месте и контролировать перезапуски.
Инструмент гибкий: поддерживает группы команд, разные режимы запуска, единый вывод и удобный контроль состояний. Для многосервисных проектов — прямо must-have.
https://github.com/sandrolain/goncurrently
#golang
Отлично подходит для локальной разработки, сборок и управления сервисами: можно поднимать несколько процессов сразу, смотреть их логи в одном месте и контролировать перезапуски.
Инструмент гибкий: поддерживает группы команд, разные режимы запуска, единый вывод и удобный контроль состояний. Для многосервисных проектов — прямо must-have.
https://github.com/sandrolain/goncurrently
#golang
🤔2👍1
🔥 Type-safe GORM с SQL-шаблонами и генерацией кода
GORM получил мощный апгрейд: CLI-инструмент, который генерирует type-safe модели, ассоциации и SQL-шаблоны. Теперь можно писать запросы к базе в Go без страха поймать ошибку в рантайме.
Что в комплекте
✅ SQL templates — декларативные запросы прямо в .sql-файлах
✅ Генерация типов и хелперов по схемам
✅ First-class ассоциации (has-one, has-many, belongs-to)
✅ Меньше boilerplate, больше гарантии на этапе компиляции
Почему это круто
- SQL остаётся «чистым» и понятным
- Go-код генерируется поверх реальной схемы
- Ошибка в запросе = ошибка компиляции, а не прод-падение
- Удобно для больших проектов и команд
Это тот случай, когда ORM перестаёт быть «магией», а становится прозрачным, предсказуемым и безопасным по типам.
Репозиторий:
https://github.com/go-gorm/cli
#golang #gorm #database #sql #backend #typedapi
GORM получил мощный апгрейд: CLI-инструмент, который генерирует type-safe модели, ассоциации и SQL-шаблоны. Теперь можно писать запросы к базе в Go без страха поймать ошибку в рантайме.
Что в комплекте
✅ SQL templates — декларативные запросы прямо в .sql-файлах
✅ Генерация типов и хелперов по схемам
✅ First-class ассоциации (has-one, has-many, belongs-to)
✅ Меньше boilerplate, больше гарантии на этапе компиляции
Почему это круто
- SQL остаётся «чистым» и понятным
- Go-код генерируется поверх реальной схемы
- Ошибка в запросе = ошибка компиляции, а не прод-падение
- Удобно для больших проектов и команд
Это тот случай, когда ORM перестаёт быть «магией», а становится прозрачным, предсказуемым и безопасным по типам.
Репозиторий:
https://github.com/go-gorm/cli
#golang #gorm #database #sql #backend #typedapi
🔥6❤2🥰1