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

Подписаться на ежемесячный имейл-дайджест главных новостей (бесплатно) — https://clck.ru/3N3ZYp
Download Telegram
#НовостиРазработки 🔀 Вышла первая полнофункциональная версия depgraph
Go Module Dependency Graph Generator (depgraph) — инструмент, строящий графы зависимостей Go-модулей, размещённых в открытых репозиториях на GitHub.

Depgraph сканирует указанные GitHub-аккаунты (пользователей или организаций), находит в их репозиториях файлы go.mod, извлекает из них прямые зависимости, а затем:
— строит граф зависимостей в формате DOT (его можно визуализировать с помощью Graphviz)
— или выдает топологическую сортировку — список модулей по уровням: сначала модули, ни от кого не зависящие, а затем — зависящие от них.


Зачем это нужно

🔄Depgraph позволяет анализировать и визуализировать зависимости Go-модулей, что облегчает понимание структуры проектов и помогает выявить потенциальные проблемы — например, циклические зависимости.

🤖 Интересно, что предыдущие версии depgraph создавались с помощью AI (Gemini Pro), но он часто ломал уже работающий код, и теперь автор переписывает проект вручную.

🔖Подробнее
👍31🔥1
#НовостиРазработки Gemini 2.5 Pro доступна в чате Copilot в VS Code! 😍
❇️Gemini 2.5 Pro — новейшая модель Gemini от Google для решения сложных задач; демонстрирует высокие результаты в рассуждении и программировании, а также в тестировании и математических вычислениях.

💲На данный момент Gemini 2.5 Pro доступна в платной подписке. Она лучше справляется с кодом, логикой, аналитикой, креативом и медленнее, чем Flash, зато поддерживает длинный контекст — до 1 млн токенов!

🆓 В бесплатной версии доступна Gemini 2.0 Flash — облегчённая модель для повседневных задач, быстрее отвечает, особенно на короткие или простые запросы. Может проигрывать Pro в сложных рассуждениях и креативных задачах.

☑️Gemini можно использовать как в чате Copilot в VS Code, так и в иммерсивном чате Copilot на гитхаб.
❇️Иммерсивный чат Copilot — это расширенный интерфейс взаимодействия с GitHub Copilot на GitHub.com: полноценный чат с ИИ, интегрированный с вашими репозиториями и кодом.

🔖Подробнее
🔥32
#НовостиРазработки JetBrains проанализировали развитие Go 🚀

Основные результаты исследования, опубликованного JetBrains в апреле 2025 г.:
📊Число пользователей Go колеблется от 4.7 до 5.8 млн человек.

🎯Чаще всего Go используют:
— для создания бизнес-приложений, веб-сервисов, микросервисов, CLI;
— в разработке облачной инфраструктуры и в DevOps.

🏢 Компании, использующие Go:
Технологии: Google, Kubernetes, Dropbox, Apple
Финансы: American Express
Транспорт и ритейл: Uber, Amazon
Медиа и игры: Netflix, TikTok, Reddit

🤝 Go и Rust — конкуренты? Go и Rust часто сравнивают, но они дополняют друг друга:
Go проще и быстрее в разработке, подходит для облачных сервисов, микросервисов и API.
Rust лучше подходит для низкоуровневой, высокопроизводительной разработки, финансовых платформ и высокочастотного трейдинга.
✔️Часто компании используют оба языка.

Go входит в "золотой век" своего развития. Будущее Go выглядит стабильным и многообещающим, особенно в DevOps и облачных решениях.

🔖Подробнее
🥰5🔥2🤪1
#НовостиРазработки 🧩Вышла библиотека бесшовной интеграции Vite-фронтенда к Go-бекенду
❇️"Vite backend integration for Go" (от разработчика Oliver Eilhard) — библиотека, позволяющая легко подключать JavaScript-фронтенд, собранный с помощью Vite, к серверной части Go-приложения.

Как это работает
В режиме разработки подключение идёт к локальному серверу Vite, который отдаёт JS и CSS, но картинки, SVG и т.д. из public/ нужно отдавать из Go.
— В продакшене подключение идёт к собранным ассетам в dist/assets, которые Go отдаём сам.
Статические файлы (изображения, HTML, CSS, JS, конфиги и т.п.) можно встроить прямо в исполняемый файл Go-приложения, используя специальную директиву компилятора go:embed
— Использование с HTTP-обработчиком: вместо ручного рендера шаблонов можно использовать готовый HTTP-обработчик, который сам вернёт нужный HTML/JS/CSS — для этого используется функция vite.NewHandler(), возвращающая http.Handler

🔖Подробнее
🔥8👍2
#НовостиРазработки Вышел gRPC v1.72.0
❇️gRPC — высокопроизводительный универсальный фреймворк для удалённых вызовов процедур (RPC — Remote Procedure Call): позволяет одной программе вызывать функции другой, которая может находиться на другом сервере.

1. Основные изменения
🧩 Поддержка зависимостей: минимальная версия Go повышена до 1.23. Поддержка старых версий прекращена.
⚒️Добавлен экспериментальный API AddressMapV2 с использованием дженериков. Теперь компилятор может проверить типы во время компиляции и избежать ошибок, которые раньше могли проявиться только во время выполнения.
🧹 Старый AddressMap deprecated.
📍EndpointMap теперь также на дженериках для большей типобезопасности и гибкости.

2. Новые фичи
xDS: добавлена метрика grpc.xds_client.server_failure для отслеживания ошибок соединения
balancer/rls: теперь можно задавать maxAge больше 5 минут, если в конфиге задан staleAge
pickfirst: реализация с поддержкой Happy Eyeballs (быстрый выбор между IPv4/IPv6)

🔖Подробнее
👍32
#НовостиРазработки 🎉Вышел релиз ​urfave/cli v3.2.0
❇️​urfave/cli — библиотека для создания командных интерфейсов (CLI) на Go. Это простой и выразительный API, позволяющий быстро разрабатывать CLI-приложения с поддержкой команд, флагов, автодополнения и автогенерации документации.

Что нового
1.🔥Важно! Для большей строгости типов и явности IntFlag теперь использует тип int, а не int64.
Раньше IntFlag всегда возвращал int64, теперь — int, что потенциально ломает совместимость, если код ожидал именно int64. Если вы использовали IntFlag для значений типа int64, вам теперь нужно использовать Int64Flag. То же касается UintFlag

2. 🚩Новые флаги для конкретных числовых типов для большей строгости и контроля типов. Ранее была только пара IntFlag / UintFlag, теперь весь набор от Int8Flag / Uint8Flag до Int64Flag / Uint64Flag.

3.Кроме того:
— линтер golangci-lint обновлён до v2
— добавлена функция cmd.XXXArgs(), чтобы удобнее доставать аргументы команд в нужных типах без ручного преобразования

🔖Подробнее
👍21🔥1
#НовостиРазработки 🎉Goa 3.21: теперь с поддержкой Server-Sent Events (SSE)
❇️Goa — фреймворк для разработки API на Go с использованием декларативного DSL (Domain-Specific Language). Goa экономит время, позволяя описывать API как набор декларативных спецификаций, из которых затем генерируется код серверной и клиентской стороны (маршруты, обработчики, типы и т.д.).

❗️В новой версии Goa 3.21 появилась нативная поддержка Server-Sent Events (SSE), что позволяет легко реализовать одностороннюю потоковую передачу данных от сервера к клиенту в реальном времени через HTTP. Отлично подходит для чатов, уведомлений, мониторингов и других real-time сценариев.

Что еще нового
✔️ Улучшена генерация OpenAPI примеров: если вы создаёте собственные типы, основанные на примитивах (alias), Goa теперь автоматически использует пример из типа для всех его вхождений, и нет нужды дублировать example везде вручную.
✔️ Сгенерированный Goa код теперь проходит проверку популярным анализатором кода staticcheck

🔖Подробнее
🔥21👍1
#НовостиРазработки Nativewebp v1.2: поддержка анимации и улучшенная стабильность
❇️nativewebp — нативный WebP-энкодер, полностью написанный на Go без зависимостей от внешних библиотек (типа libwebp).

Что нового в nativewebp v1.2:
🎥 Создание анимированных WebP-файлов с возможностью настройки:
— нескольких кадров,
— длительности каждого кадра,
— методов удаления (disposal methods),
— цикличности воспроизведения,
— цвета фона.

Добавлена новая функция EncodeAll, которая упрощает создание анимаций в формате WebP с поддержкой контейнера VP8X, реализованная полностью на Go.

📌Кроме того, внесены небольшие изменения для большей стабильности и добавлены более строгие проверки входных данных для надежности кодирования разных типов изображений и анимаций.

🔖Подробнее
2👍1🔥1
#НовостиРазработки 🎉Вышел первый стабильный релиз Grafana k6 v1.0
❇️Grafana k6 v1.0 — инструмент нагрузочного тестирования с интеграцией с CI/CD для скриптовых тестов на JavaScript.
Преимущества:
— ориентация на developer experience,
— простой запуск,
— поддержка JS API и
— аналитика тестов в реальном времени.

Особенности Grafana k6 v1.0:
✔️ Встроенное создание тестовых проектов через CLI.
✔️ Поддержка модульной структуры с помощью import/export, что позволяет организовать тесты аналогично «боевому» JS-коду.
✔️ Автоматическое форматирование тестов при сохранении, что ускоряет работу с большими файлами.
✔️ Поддержка описания тестовых сценариев через k6 Browser (эмуляция frontend-юзера), что расширяет область применения до e2e- и сквозных тестов.

🚀Grafana k6 v1.0 может серьезно сэкономить время на подготовке тестовой базы и снимает барьер входа для JS-разработчиков

🔖Подробнее
1
#НовостиРазработки Обновление Go до версий 1.24.3 и 1.23.9
Что нового
🛡Главное изменение в версии 1.24.3 — исправление уязвимости безопасности (CVE-2025-22873). Проблема заключалась в том, что метод os.Root.Open("../") мог открыть родительскую директорию, выходя за пределы "песочницы", заданной Root. Уязвимость затрагивала только Go 1.24.x, версия 1.23.x ей не подвержена.
🐞Исправлены баги в обработке TLS, которые могли вызвать падение серверов
🔄Обновлены внутренние зависимости компилятора и стандартной библиотеки, влияющие на стабильность работы приложений
✔️Оптимизирована работа garbage collector, снижен риск утечек памяти
Изменения не влияют на публичные API и не требуют перенастройки сборки.

🔖Подробнее
🔥2
#НовостиРазработки ⚠️Вышел 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