Golang - Новости
183 subscribers
38 photos
38 links
Новости про Golang и backend разработку

Подписаться на ежемесячный имейл-дайджест главных новостей (бесплатно) — https://clck.ru/3N3ZYp
Download Telegram
#НовостиРазработки ⚠️Вышел Revive v1.10.0
❇️Revive — современный высокоэффективный линтер для Go, замена устаревшего golint. Предлагает более строгие проверки, гибкую настройку и расширяемость, что делает его полезным инструментом для поддержания качества кода в Go-проектах.
Возможности Revive:
— Поддержка кастомных правил и форматтеров через стандартный API
— Отключение правил и линтера для отдельных файлов или строк через комментарии
Гибкая настройка через TOML (включить, отключить, настроить отдельные правила)
— Множество предустановленных правил (гораздо больше, чем у golint)

Что нового
Новое правило time-date — полезно для контроля качества кода, связанного с датой/временем.
Улучшения var-naming — помогает находить бессмысленные имена и улучшать читаемость.
Интеграция golangci-lint — ускоряет CI и делает линтинг более строгим.
Удаление зависимостей и упрощение кода — делает проект легче и устойчивее.

🔖Подробнее
🔥3
#НовостиРазработки В Go 1.24.4 и Go 1.23.10 закрыты важные уязвимости безопасности

🛡Обновление Go 1.24.4 и Go 1.23.10 содержит три исправления уязвимостей, связанных с безопасностью, особенно важных для тех, кто работает с proxy, сертификатами и врапит сложные сценарии файловой системы.

Что нового
1. Исправлен баг в net/http: при кросс-доменных редиректах могли сохраняться чувствительные заголовки Proxy-Authorization и Proxy-Authenticate, что создавало угрозу утечки данных.
2. Приведено к единому поведению открытие файлов с флагами O_CREATE|O_EXCL: теперь на Unix и Windows os.OpenFile не создаёт файл по dangling symlink, а вместо этого возвращает ошибку.
3. Исправлена проблема c crypto/x509: если в VerifyOptions.KeyUsages был указан ExtKeyUsageAny, не работала валидация политик — это затрагивало редкие кейсы с цепочками сертификатов и графами политик.

🔖Подробнее
❤‍🔥3👍3
#НовостиРазработки ⚙️Расширенные возможности обновленного bob v0.35.0
❇️Bob — набор инструментов для генерации SQL-запросов и ORM-кода на Go. Главная фишка — ориентация на генерацию кода под разные SQL-диалекты и глубокая кастомизация под требования проекта.

❇️ORM-код использует Object-Relational Mapping для взаимодействия с базой данных. Вместо ручного написания SQL-запросов, ORM позволяет работать с БД как с обычными структурами Go (struct), а все SQL-запросы и преобразования данных выполняются "под капотом".


Что нового
📌1. Генерация кода:
— Поддержка SQL-запросов SELECT, INSERT, UPDATE, DELETE для bobgen-mysql и частично для bobgen-sqlite.
— Добавлены опции LIMIT и OFFSET для UPDATE и DELETE в SQLite.
🛠2. Модификаторы запросов:
IndexedBy и NotIndexed добавлены для SQLite DELETE-запросов.
OrderCombined, LimitCombined, OffsetCombined добавлены для комбинированных запросов в MySQL.
⚙️ 3. Кроме того: расширены возможности использования фабрик (factories), транзакций, удалены устаревшие опции

🔖Подробнее
4🔥2
#НовостиРазработки 📈Бенчмаркинг SQLite-драйверов для Go sqlite-bench v1.1.4
❇️sqlite-bench v1.1.4 — проект, созданный на основе go-sqlite-bench для сравнительного анализа производительности разных реализации sqlite-драйверов через стандартный database/sql. В отличие от многих аналогов, здесь собраны реальные кейсы работы с базой, а не синтетические тесты, и поддерживается сравнение популярных CGO и pure Go-драйверов.


Особенности:
Покрытие трех драйверов:
1) mattn (CGO),
2) modernc (transpile SQLite C -> Go),
3) ncruces (на wazero)
Бенчмарки разбиты по сценариям: вставка большого объема данных, сложные join-запросы, чтение больших таблиц, конкурентные запросы
Результаты представлены по различным платформам и архитектурам (Linux, macOS, Windows, ARM и др.)
Итоговые таблицы показывают, какой драйвер лидирует в каждом сценарии; общий балл — вспомогательный, ориентируйтесь на свои задачи
⚠️ Предупреждение: бенчмарки специфичны, делайте свои тесты под свои нужды

🔖Подробнее
🔥2
#НовостиРазработки MCP Go 0.31 — библиотека SDK на Go, реализующая Model Context Protocol
❇️MCP Go 0.31 — это высокоуровневый Go‑SDK для создания серверов, умеющих договариваться с LLM через протокол MCP, декларативно описывать инструменты и надежно обрабатывать запросы, при этом скрывая детали работы самого протокола.

Что умеет
1. Создавать MCP-серверы, предоставляющие данные и функции для LLM‑приложений (открытых и приватных языковых моделей).
2. Объявлять инструменты (tools) — действия, которые LLM может вызвать, передавая аргументы, как в hello_world и calculate.
3. Обрабатывать запросы от LLM, вызывая соответствующие Go‑функции и возвращая результат (текст или данные).
4. Работать с ресурсами, промптами, сессиями, транспортами (stdio, SSE, HTTP‑стриминг) и хуками (middleware) для логирования, наблюдения и обработки ошибок.
✔️Итого: простой интерфейс, минимальный шаблон и богатая функциональность для интеграции LLM‑ботов с внешними API и базами данных.

🔖Подробнее
🔥3
#НовостиРазработки Air 1.62 — горячая перезагрузка для приложений на Go
Air — утилита командной строки для горячей перезагрузки Go-приложений во время разработки, ускоряет цикл разработки за счёт автоматической пересборки и перезапуска приложения при изменениях в коде


🚀Возможности Air:
следит за изменениями в исходных файлах и автоматически пересобирает и перезапускает приложение, чтобы разработчик мог видеть изменения сразу, без ручной пересборки и перезапуска;
— ускоряет локальную разработку, особенно при работе с веб-серверами или CLI-утилитами;
просто интегрируется, экономит время на пересборке и перезапуске;
🐳 можно использовать Air внутри Docker контейнера, включая Dockerfile и docker-compose.yaml

🔖Подробнее
3
#Новостиразработки ⚙️httpgrace – Graceful Shutdown для HTTP-сервера
❇️httpgrace — лёгкий и удобный способ добавить корректное завершение работы HTTP-серверов в Go без необходимости писать дополнительный код. Подходит как для быстрого старта, так и для более сложных конфигураций.

✔️Почему это важно: хорошее завершение запросов при остановке сервиса — обязательная часть продакшен-приложений (иначе теряются данные, висят соединения и т.д.).


Возможности httpgrace:
— Полная совместимость с функциями net/http: ListenAndServe, ListenAndServeTLS, Serve, ServeTLS
Graceful shutdown по сигналам SIGINT и SIGTERM
Таймаут завершения (по умолчанию 10 секунд)
Структурированный лог через slog (стандартный логгер в Go 1.21+)
— Очень простая интеграция — буквально одна строка замены импорта

🔖Подробнее
🔥4
#НовостиРазработки 🌟Вышла обновленная версия oRPC v1.7.0
❇️В основе oRPC v1.7.0 — функционал RPC-библиотеки с фокусом на безопасность, расширяемость и поддержку TypeScript/схем

Главное в версии 1.7.0:
Smart Coercion Plugin: автоматически приводит значения к нужным типам на основе схем (Zod, Valibot, ArkType).

🎯 Когда полезна oRPC v1.7.0?
Если в проекте используются RPC-вызовы, а обработка схем и ошибок происходит вручную: при работе с фронтом и бэком, нуждающемся в согласованности типов (например, React + Zod)
✔️React Server Actions через пакет @orpc/react. Он предоставляет хуки вроде useServerAction, а также createFormAction для форм в React, Next.js — удобно интегрировать RPC‑вызовы прямо в компоненты
✔️Интеграция с Pinia Colada — хранилище для Vue, поддерживаемое oRPC через @orpc/vue-colada
✔️oRPC написан на TypeScript, но поддерживает Go на стороне сервера благодаря OpenAPI‑интеграции.
Через @orpc/openapi можно сгенерировать спецификацию и использовать её в Go‑сервисе

🔖Подробнее
🔥3🤨1💊1
#НовостиРазработки🔥Новый инструмент pproftui для анализа производительности
❇️ pproftui — интерактивный инструмент для анализа производительности Go-приложений прямо в терминале

✔️Заменяет менее удобный go tool pprof, устраняя переключения между браузером и кодом
✔️Объясняет профилировочные термины (flat vs cum, cpu, alloc) прямо в UI.

🛠 Что умеет:
— Просмотр исходников и графа вызовов
— Подсветка только вашего кода
— Сравнение профилей (дифф)
— Live-профилирование с автообновлением
— Встроенная помощь по F1

📋 Примеры:
— Анализ локального CPU-профиля
— Поиск регрессии между ветками
— Подключение к staging/live-сервису
— Фильтрация лишнего кода (runtime, vendor)

📦 Установка:
go install github.com/Oloruntobi1/pproftui@latest


pproftui делает профилирование в Go быстрым, понятным и эффективным — прямо в терминале

🔖Подробнее
👍3
#НовостиРазработки 📦PocketBase — лёгкий бэкенд на Go со встроенной SQLite
❇️PocketBase — удобный бэкенд на Go для быстрого старта фронтенд-проекта (например, с React/Vue) со встроенной SQLite, REST API, realtime подписками и UI-админкой. Он подходит как фреймворк или как отдельный сервер.

Возможности PocketBase:
✔️ Встроенная админка
✔️ SQLite + realtime
✔️ REST + файл/пользователь менеджмент
✔️Отлично подходит для MVP, pet-проектов, демо

⚙️Для начала работы:
— Достаточно скачать готовый исполняемый файл, запустить команду ./pocketbase serve, создать суперпользователя и использовать веб-интерфейс и REST API.
— При запуске создаются две папки: pb_data для хранения данных и файлов, и pb_migrations для скриптов миграций.

⚠️ PocketBase ещё в активной разработке, и для production-решений рекомендуется с осторожностью

🔖Подробнее
6
📧Сервер тестирования исходящей почты на GoInbucket
❇️Inbucket — сервер для тестирования исходящей почты, позволяющий перехватывать письма от приложений и просматривать их без доставки реальным адресатам.
Проект зрелый, Docker-образ скачан свыше миллиона раз

Когда это полезноЕсли разработчик или тестировщик:
✔️ работает за фаерволом и не может пользоваться публичными сервисами вроде Mailinator;
✔️разрабатывает закрытый проект и не хочет раскрывать его до релиза;
✔️проводит интеграционное тестирование;
✔️хочет показать письмо коллеге без передачи личных данных;
✔️делает нагрузочные тесты без перегрузки корпоративного почтового сервера;
✔️использует реальные данные в тестах, но не хочет, чтобы тестовые письма ушли клиентам;
✔️проверяет отображение писем в разных почтовых клиентах.

Что нового в версии 3.1.0
Добавлена поддержка Lua-скриптов, фильтрация писем по домену источника и улучшенный TLS для SMTP/POP3. Доступны бинарные файлы и Linux-пакеты, разработана документация

🔖Подробнее
🔥3👍1
#НовостиРазработки 🎉Вышел Go 1.25
❇️Go 1.25, выпущенный 12 августа 2025 года, сосредоточен на улучшениях инструментов, рантайма и стандартной библиотеки, без изменений языка


Что нового

✔️В go build добавлена автоматическая проверка утечек памяти для C, новые опции go.mod ignore, go doc -http и поддержка модулей в подкаталогах.
✔️Команда go vet теперь проверяет неправильное использование WaitGroup и IPv6-адреса.
✔️Рантайм стал «контейнеро-осведомленным»: GOMAXPROCS учитывает ограничения CPU контейнера, а новый экспериментальный GC снижает нагрузку на сборку мусора на 10–40%.
✔️Появился runtime/trace.FlightRecorder для лёгкого трассирования.
✔️Компилятор исправил ошибку с nil-pointer и поддерживает DWARF5, ускорены операции со срезами.
✔️Стандартная библиотека получила testing/synctest для тестирования конкурентного кода, новую экспериментальную JSON-библиотеку encoding/json/v2, улучшения в crypto, TLS и сетевых пакетах, а также расширенные возможности os и net на Windows

🔖Подробнее
🔥51👍1
#НовостиРазработки
❇️Statsviz — инструмент для Go, позволяющий в реальном времени в браузере видеть графики с метриками выполнения программы: количество горутин, использование памяти, сборки мусора, паузы GC, события планировщика и прочее.

Как это работает
Вы подключаете Statsviz в свой Go-сервис, регистрируете HTTP-обработчики, открываете браузер по определённому адресу, и Statsviz отправляет данные через WebSocket и отображает их в виде интерактивных графиков.

Регистрируется HTTP-обработчик через statsviz.Register() или создаётся сервер statsviz.NewServer() для кастомных путей, HTTPS или работы с фреймворками (Gin, Echo, Fiber, fasthttp и др.).

✔️Принцип работы:
Ws — WebSocket-эндпоинт, отправляющий метрики раз в секунду.
Index — веб-интерфейс для отображения данных.
✔️Функции UI: выбор категорий графиков, настройка временного диапазона, отображение/скрытие событий GC, пауза обновлений.

🔖Подробнее
2
#НовостиРазработки 🎉Вышел обновленный GoReleaser v2.12
❇️GoReleaser автоматизирует процесс сборки, упаковки и публикации Go-программ.
Он берёт ваш Go-код
→ собирает бинарники для разных платформ
→ упаковывает их (в архивы, Docker-образы, пакеты)
→ публикует (в GitHub Releases, Docker Hub, Homebrew и т.д.).

Что нового
✔️Новый Docker v2 — переработана интеграция с Docker:
— Теперь используется docker buildx, что упрощает сборку мультиархитектурных образов.
— Убрали дублирующуюся конфигурацию и лишние промежуточные теги.
— Для локальных сборок (--snapshot) GoReleaser автоматически собирает образы с архитектурой в теге (чтобы можно было тестировать, не пуша в Docker Hub).
📦 Makeself — поддержка самораспаковывающихся архивов с автозапуском скрипта.
🔒 Attestations — возможность аттестовать (подтвердить подлинность) бинарники и Docker-образы прямо через GitHub Actions.
🧩 Smart semver — умная сортировка версий: стабильные релизы не будут «считаться продолжением» бета-версий.

🔖Подробнее
🔥1
#НовостиРазработки 🚀Вышел релиз sqlc v1.30.0 — это обновление с багфиксами, улучшенной поддержкой SQLite и MySQL, переходом на Go 1.25 и обновлённой документацией.
❇️sqlc — инструмент разработки, который:
— берёт SQL-запросы (SELECT, INSERT, UPDATE и т.д.),
— генерирует для них типобезопасный код (Go, Kotlin, Python, TypeScript и др.),
— вы используете сгенерированные функции в приложении, вместо того чтобы вручную писать обёртки над SQL.
🎯Это сокращает количество ошибок, так как уже на этапе компиляции видно несоответствие типов.

Что нового
🐳 Docker Compose теперь использует MySQL 9.

🗄 Для SQLite:
— исправлено преобразование jsonb → json при возврате в Go,
— добавлен фикс для INSERT DEFAULT VALUES.
🛠 Исправлены ошибки, которые вызывали panic (например, DELETE ... JOIN или MySQL-specific баги).
✔️Исправления в генерации Go-кода:
— теперь корректно обрабатываются enum (не пропускаются, если они в массивах),
— улучшена работа с go_struct_tag и переопределениями типов.

🔖Подробнее
3
#НовостиРазработки fasthttp - альтернативная реализация HTTP-сервера и клиента для Go
fasthttp — альтернатива библиотеке Go net/http для работы с тысячами запросов в секунду и миллионами соединений, достигая ускорения до 10 раз за счёт отсутствия выделений памяти в “горячих” местах и повторного использования структур

✔️В отличие от net/http, fasthttp не совместима напрямую с её API: обработчики пишутся через функцию RequestHandler(ctx *fasthttp.RequestCtx), а не через интерфейсы.

Преимущество — гибкость: можно изменять заголовки и тело ответа в любом порядке, что в net/http невозможно.

Недостатки — отсутствие поддержки всех функций (стриминг, большие тела), нестабильность API, необходимость сторонних роутеров (например, Fiber или atreugo). Контекст запроса нельзя хранить после выхода из хендлера, иначе возникнут гонки данных.

🎯fasthttp подходит для API-шлюзов, кешей и realtime-сервисов, где важны скорость и минимальные задержки; для других приложений лучше использовать net/http

🔖Подробнее
🔥2👍1
#НовостиРазработки Красивый рендеринг таблиц с TableWriter 1.1 для Go

TableWriter 1.1 - библиотека для вывода таблиц в разных форматах (ASCII, Unicode, Markdown, HTML, цветной терминал), которую удобно использовать в CLI-инструментах, логах, документации или даже веб-приложениях.

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

✔️Поддержка множества форматов (ASCII, Markdown, HTML и др.).
✔️Гибкая стилизация (бордеры, выравнивание, объединение ячеек, цвета).
✔️Гибкий ввод данных — из CSV, структур, срезов или потоком.
✔️Высокая производительность (минимум аллокаций, повторное использование буферов).
✔️Современные возможности Go — generics, потоковая отрисовка таблиц в реальном времени, иерархические слияния ячеек.
✔️Безопасность — экранирование HTML/Markdown.

Версии:
v0.0.5 — старая стабильная версия для легаси.
☑️v1.1.0 (последняя) — новая, с generics и быстрыми streaming API.
✖️v1.0.0 — проблемная, использовать не рекомендуется

🔖Подробнее
2👍1
#НовостиРазработки ⚠️Обновления безопасности в Go 1.25.2 и 1.24.8

🛡7 октября 2025 года команда Go выпустила обновления Go 1.25.2 и Go 1.24.8, включающие десять важных исправлений безопасности. Данные минорные релизы не добавляют новых функций, но устраняют уязвимости, связанные с чрезмерным потреблением ресурсов и потенциальными атаками.

🎯Среди исправлений:

— проблемы в пакетах net/mail, net/textproto и encoding/pem, вызывавшие повышенную нагрузку на CPU при обработке больших или некорректных данных;
— в crypto/x509 и encoding/asn1 устранены ошибки, позволявшие злоумышленникам спровоцировать утечку памяти или сбой при валидации сертификатов;
— исправлена ошибка в net/http, из-за которой сервер мог расходовать чрезмерную память при обработке большого числа cookies;
crypto/tls устранена возможность внедрения вредоносного текста в логи.

🔐Рекомендуется обновиться до последних версий, чтобы защитить приложения от возможных DoS-атак и утечек данных.

🔖Подробнее
❤‍🔥1
#НовостиРазработки Библиотека Lo обновилась до v1.52.0

Lo утилитарная библиотека для Go, вдохновлённая Lodash из JavaScript; использует дженерики (Go 1.18+) и предлагает удобные функции для работы со срезами, мапами, строками, каналами и функциями.

🎯Цель — сократить шаблонный код и сделать работу с коллекциями более выразительной и безопасной по типам.

✔️Например, lo.Map, lo.Filter, lo.Reduce, lo.Uniq и другие повторяют поведение аналогов из Lodash: можно легко фильтровать, преобразовывать и агрегировать данные.
✔️У библиотеки нет внешних зависимостей, она следует SemVer и не ломает API до версии 2.0.
✔️Подмодули lo/parallel, lo/mutable и lo/it добавляют параллельную обработку, мутабельные операции и итераторы.

Использовать просто: go get github.com/samber/lo@v1, импортировать и вызывать функции вроде lo.Uniq([]string{"a","b","a"}). Это лаконичный, современный способ писать более чистый и функциональный Go-код

🔖Подробнее
🔥1💩1
#НовостиРазработки Вышел Ginkgo v2.26

☘️Ginkgoфреймворк для тестирования на Go, построенный поверх стандартного пакета testing. Реализует подход BDD (Behavior-Driven Development), позволяя писать тесты в виде читаемых спецификаций, описывающих поведение программы.

Основные элементы DSL:
Describe, Context, When, It — структурируют тесты;
BeforeEach и AfterEach выполняют подготовку и очистку окружения.

Фреймворк поддерживает параллельный запуск (ginkgo -p), маркировку тестов метками (Label).

CLI-инструмент помогает генерировать, запускать и отслеживать тесты в реальном времени. Ginkgo делает написание тестов в Go лаконичным, наглядным и удобным для командной разработки.

🆕Новое в версии 2.26.0:
Добавлена возможность генерации JSON-отчётов, совместимых с go test:
ginkgo --gojson-report=report.go.json

Это удобно для CI/CD систем и интеграции с инструментами анализа тестов.

🔖Подробнее
1