39.1K subscribers
1.65K photos
48 videos
5 files
1.79K links
admin - @haarrp

https://t.me/Golang_google - Golang разработка

https://t.me/golangl - golang чат

https://t.me/golangtests go тесты

https://t.me/ai_machinelearning_big_data машинное обучение

@itchannels_telegram

РКН: clck.ru/3Fmx3s
Download Telegram
💻 kubectl-browse-pvc — плагин для kubectl, который позволяет пользователям удобно просматривать данные в Persistent Volume Claims (PVC) в Kubernetes!

🌟 Этот инструмент предоставляет возможность быстро монтировать PVC в поды Kubernetes и просматривать содержимое томов через файловую систему, что упрощает процесс диагностики и работы с данными в Kubernetes.

🌟 Плагин работает как расширение для kubectl, добавляя команду kubectl browse-pvc. Это позволяет пользователю быстро исследовать данные в томах Kubernetes без необходимости вручную настраивать монтирование томов или взаимодействовать с подами через командную строку. Пользователь может указать имя PVC, и плагин автоматически создает под с монтированным PVC, предоставляя удобный доступ к его содержимому для чтения и диагностики.

🔐 Лицензия: MIT

🖥 Github

@golang_google

#go #golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7🔥3
👣 Zek: быстрое создание структур из XML

Библиотека zek позволяет автоматически генерировать Go-структуры из XML-документов.
Полученные структуры идеально подходят для чтения и парсинга XML.

🔗 Repo: https://github.com/miku/zek
#golang #xml #devtools

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31😁164🔥4
🗄️ SQL-редактор в браузере

Запускается как Go HTTP-сервер и открывается прямо в браузере.
Подходит для простых ETL-задач:

- перенос данных между базами
- работа с Excel-таблицами
- поддержка JSON и CSV

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

👉 https://github.com/a-le/db-portal

#golang
👍97🤔3🥰2
🤯 Вышли Go 1.25.1 и Go 1.24.7!

🔐 Security: исправлена уязвимость в net/http (CVE-2025-47910).

📣 Анонс: https://groups.google.com/g/golang-announce/c/PtW9VW21NPs/m/DJhMQ-m5AQAJ
⬇️ Скачать: https://go.dev/dl/#go1.25.1

#golang #security #release

@golang_google
1👍3314🔥7
👣 Kubernetes Metrics Server для автошкалирования 🚀
Metrics Server — это легковесный источник метрик ресурсов контейнеров для Kubernetes, предназначенный для поддержки автошкалирования. Он собирает данные о ресурсах с Kubelet и предоставляет их через Metrics API, что упрощает настройку горизонтального и вертикального автошкалирования.

🚀Основные моменты:
- Эффективное использование ресурсов: 1 мили ядра CPU и 2 МБ памяти на узел
- Поддержка кластеров до 5000 узлов
- Сбор метрик каждые 15 секунд для быстрого автошкалирования
- Не предназначен для мониторинга или других целей, кроме автошкалирования

📌 GitHub: https://github.com/kubernetes-sigs/metrics-server


@golang_google

#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥3😁1
Новый экспериментальный JSON API в Go

В версии Go 1.25 появился новый способ работы с JSON — пакеты encoding/json/v2 и encoding/json/jsontext.
Пока они работают только в экспериментальном режиме: чтобы включить, нужно указать GOEXPERIMENT=jsonv2 или собрать проект с тегом goexperiment.jsonv2.

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

Старая библиотека encoding/json существует с первых версий Go и за годы накопила массу проблем:

- Принимает некорректный UTF-8 и дубли ключей в объектах — это нарушает стандарт и может вести к багам.
- nil`-срезы и карты сериализуются как `null, хотя логичнее было бы [] или {}.
- Сопоставление полей Go-структур нечувствительно к регистру — медленно и запутанно.
- Нет нормального стриминга JSON.
- Есть лишние аллокации и даже квадратичные замедления при рекурсии.

Что изменилось в v2?

- Код разделён на два уровня: синтаксис (`jsontext`) и работа со значениями (`json/v2`). Это упростило и ускорило библиотеку.
- Marshal работает так же быстро, как в старой версии, а Unmarshal стал значительно быстрее.
- Поведение можно тонко настраивать через новые опции.
- Ошибки прошлого (дубли ключей, странное поведение с nil, нечувствительность к регистру) исправлены.

📌 Как запустить?


go run -tags goexperiment.jsonv2 .


или


GOEXPERIMENT=jsonv2 go run .


Новый API делает работу с JSON быстрее, чище и предсказуемее. Пока он экспериментальный, но, если сообщество даст положительный отклик, то в Go 1.26 или следующей версии json/v2 станет стандартом.

Почитай официальный блог: https://go.dev/blog/jsonv2-exp

@Golang_google

#Go #Golang #JSON #Go125 #encodingjson #jsonv2
👍4120🔥12
👣 Google объявил релиз - Genkit Go 1.0 - это стабильная, готовая к продакшену версия open-source фреймворка для разработки AI-приложений на Go.

Также представлена новая команда genkit init:ai-tools для лёгкой интеграции с AI-ассистентами в процессе разработки.

🔑 Что нового в Genkit Go 1.0

1. Production-ready
API признан стабильным: все программы, написанные на Genkit 1.*, будут работать и собираться в будущих минорных версиях.

2. Type-safe AI-flows
- Определение “flows” через Go-структуры и JSON Schema.
- Повышенная типобезопасность, тестируемость, наблюдаемость и удобство при деплое.

3. Унифицированный интерфейс моделей
Поддержка разных провайдеров (Google AI, Vertex AI, OpenAI, Ollama и др.) через единый API — легко переключаться между ними.

4. Tool calling, RAG и мультимодальность
- Вызов внешних инструментов (tool calling).
- Retrieval-augmented generation (RAG).
- Поддержка мультимодальных сценариев (текст, изображения и др.).

5. Инструменты для разработчиков
- Независимая CLI-утилита для локальной разработки.
- Developer UI: тестирование промтов, отладка flows, отслеживание производительности и трассировка.

6. Команда `genkit init:ai-tools`
Автоматическая интеграция с AI-ассистентами разработки: Gemini CLI, Firebase Studio, Claude Code, Cursor и др.

7. Примеры кода
В официальной документации показано, как определять flows, запускать HTTP endpoints, работать с моделями и инструментами.

🚀 Почему это важно
- Быстрая и безопасная разработка AI-приложений на Go.
- Унифицированный API позволяет экспериментировать и менять провайдеров без переписывания логики.
- Встроенные dev-инструменты ускоряют отладку и интеграцию.
- Подходит как для прототипов, так и для production-решений.

📌 Официальный анонс: https://developers.googleblog.com/en/announcing-genkit-go-10-and-enhanced-ai-assisted-development/?linkId=16710004Нужно

@Golang_google


#Genkit #GoLang #GoogleAI #AIDevelopment #OpenSource #RAG
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5216👍7
🚀 Как ВК строит единую платформу разработки и общие технологии для всех продуктов

О том, что из себя представляет платформа и зачем компании сквозные технологии, рассказал Сергей Ляджин, СТО бизнес-группы «Социальные платформы и медиаконтент».

ВК держит нагрузку в миллионы запросов в секунду и одновременно развивает десятки продуктов: от ленты до VK Видео и Музыки. Чтобы ускорить разработку и масштабирование, компания создает и развивает единые технологии:

- единая видеоплатформа
- единая платформа разработки
- единая рекомендательная система и поиск

Все это позволяет ускорять развитие, снижать издержки и строить сквозные продукты для огромной аудитории.

🎧 Подкаст «Багрепорт» — смотреть выпуск

@golang_google
#golang
😁23👍8🤬7🥰4🔥31
👣 WeKnora — новый фреймворк на Go для работы с документами, семантического поиска и генерации контекстных ответов с использованием RAG.

Ключевые возможности:
- интеграция LLM для рспознавания сложных документов,
- семантический поиск по содержимому, а не только по ключевым словам,
- ответы, учитывающие контекст и извлечение данных через Retrieval-Augmented Generation,
- написано на Go — быстрая, масштабируемая и удобная интеграция в существующие системы.

Проект:
https://github.com/Tencent/WeKnora

@golang_google

#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6🔥6
👣 Разбор статьи о том, как Go управляет памятью

Go использует собственную, достаточно сложную модель аллокации памяти, которая сильно отличается от традиционного malloc. Вместо прямой работы с кучей Go оперирует несколькими уровнями:

- Arena - основной блок памяти в 64 МБ, который Go выделяет у ОС.
- Page - каждая арена делится на страницы по 8 КБ.
- Span - набор страниц, который используется для аллокаций объектов одного размера.
- Size class - категории размеров объектов (от tiny до large), каждая из которых имеет свой способ обработки.

Память также делится на:
- scan (объекты с указателями, которые должен обходить GC),
- noscan (объекты без указателей, GC может их игнорировать).

Аллокация объектов
- Tiny-объекты (менее 16 байт) могут группироваться в один слот для ускорения.
- Small-объекты (до 32 КБ) выделяются из span’ов в соответствии с size class.
- Large-объекты (более 32 КБ) выделяются напрямую из кучи (heap).

Escape analysis
Go-компилятор анализирует, выходит ли переменная за пределы функции:
- если нет → объект попадает на стек,
- если да → объект уходит в кучу.
Это решает судьбу каждой переменной и напрямую влияет на работу GC.

Стек горутин
- Каждая горутина стартует со стека в 2 КБ.
- Стек растёт динамически (copy & grow) и может сжиматься.
- При глубокой рекурсии или сложных вычислениях рост стека может быть дорогим, так как требует копирования всех данных.

Практические советы
1. Избегайте лишних tiny / small аллокаций в горячих функциях - каждая мелочь создаёт нагрузку на GC.
2. Переиспользуйте срезы и буферы (`row[:0]`, sync.Pool) для минимизации мусора.
3. Объединяйте переменные в структуры, если они живут одинаковое время, чтобы уменьшить число malloc’ов.
4. Следите за размером объектов, чтобы они не перескакивали из small в large — это увеличивает расходы.
5. Профилируйте escape analysis (`go build -gcflags="-m"`) - он покажет, какие переменные уходят в кучу, а какие остаются на стеке.
6. Следите за ростом стека в рекурсивных функциях - копирование может быть дорогим.

Контроль над аллокацией в Go - это контроль над работой GC. Если понимать, как именно Go управляет памятью, можно проектировать код так, чтобы минимизировать аллокации, упростить жизнь GC и получить значительный прирост производительности.

🟢 Полный разбор здесь: https://nghiant3223.github.io/2025/06/03/memory_allocation_in_go.html
🟢Видео-разбор: https://www.youtube.com/watch?v=VrXQhtpjHWs

@golang_google

#golang #go #memory
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥58👍2416
💡 Совет для Go-тестов

Когда пишете вспомогательные функции вроде assertEquals или doRequest, добавьте в них t.Helper().

Зачем? Если тест упадёт, Go покажет строку вызова в самом тесте, а не внутри хелпера. Так сразу видно, где именно ошибка.

@golang_google

#golang
👍6417🔥6🥰1🤔1
📊 Высокопроизводительная библиотека логирования для Go 🚀

mtlog — это библиотека структурированного логирования для Go, вдохновленная Serilog. Она обеспечивает нулевые аллокации для простых операций логирования и поддерживает мощные функции для сложных сценариев, включая шаблоны сообщений и совместимость с OpenTelemetry.

🚀Основные моменты:
- Нулевые аллокации для простых сообщений
- Поддержка шаблонов сообщений и Go синтаксиса
- Интеграция с Kubernetes и OpenTelemetry
- Многофреймворковая поддержка для HTTP
- Расширенные стратегии выборки и маршрутизации логов

📌 GitHub: https://github.com/willibrandon/mtlog

@golang_google

#golang
5👍2🔥2🤬1🎉1