golang_google | Unsorted

Telegram-канал golang_google - Golang

43796

admin - @haarrp https://t.me/golangl - golang чат https://t.me/golangtests go тесты https://t.me/ai_machinelearning_big_data машинное обучение @itchannels_telegram РКН: clck.ru/3Fmx3s #VRHSZ

Subscribe to a channel

Golang

🔥 Yoke - управление пакетами Kubernetes без гор YAML

Вместо сложных Helm-шаблонов Yoke позволяет описывать инфраструктуру обычным кодом.

Схема простая:

`код → WebAssembly → ресурсы Kubernetes`

Пакеты в Yoke называются flights: это WASM-программы, которые генерируют Kubernetes-ресурсы, а Yoke применяет их в кластер.

Что это даёт:

- обычный код вместо шаблонов
- строгую типизацию
- условия и циклы
- нормальное тестирование
- обработку ошибок
- версии и откаты

Команды тоже необычные:

takeoff — развернуть
descent — удалить
mayday — откатить

Проект написан на Go и распространяется под MIT.

https://github.com/yokecd/yoke

Читать полностью…

Golang

🐳 Как правильно использовать Docker для Go-приложения - пошаговый гайд

Хороший разбор от freeCodeCamp для тех, кто хочет понять Docker на реальном Go-проекте, а не только по отдельным командам.

Внутри:

- что такое image и container
- как написать Dockerfile для Go
- go mod download и сборка бинарника внутри контейнера
- как собрать image через docker build
- как связать Go-приложение с MySQL
- как добавить phpMyAdmin
- Docker Compose
- volumes для сохранения данных
- networks для связи контейнеров
- .env для конфигурации
- запуск всей связки одной командой

Итоговая схема:

Go API → MySQL → phpMyAdmin

в отдельных контейнерах, объединённых через Docker Compose.

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

https://www.freecodecamp.org/news/how-to-dockerize-a-go-application-full-step-by-step-walkthrough/

Читать полностью…

Golang

✔️ Голосовая модель GPT-Live-1 стала доступна по API

OpenAI открыла API полнодуплексной голосовой модели GPT-Live-1 стоимостью 5 центов за минуту. Модель слушает и синтезирует речь одновременно, заменяя традиционный каскад STT–LLM–TTS.

Единая архитектура снизила задержку реакции с 1,4 до 0,8 секунды и позволила обрабатывать перебивания. Обновленная фильтрация пауз и фонового шума сократила число ложных прерываний на 80%.

Модель поддерживает делегирование вычислений - голосовой фронтенд удерживает непрерывный контакт с пользователем, пока бэкенд (GPT-6 Astra и Luna) параллельно выполняют рассуждения и вызовы инструментов.

GPT-Live-1 готова к интеграции в телефонию. API может возвращать ASR-транскрипты, включает 12 голосов и поддерживает управление темпом и стилем речи через системный промпт.


@ai_machinelearning_big_data

#news #ai #ml

Читать полностью…

Golang

Как вам идея поучаствовать в создании платформы для агентской разработки?

В Ozon Tech сейчас создают такую платформу. Базовый слой и LLM-шлюз уже готовы, дальше — SDK, Tool Hub, оркестрация, инструменты observability и evaluation для AI-агентов.

Ищут Senior-разработчиков. Стек не принципиален — важнее сильная инженерная база и интерес к AI.
Если хочется поработать не просто с LLM, а с инфраструктурой вокруг AI-агентов — возможно, это тот самый проект.

Подробнее о вакансии

Читать полностью…

Golang

🐘 pgbot - диагностика PostgreSQL для AI-агентов и приложений, написанная на Go

Один исполняемый файл подключается к базе в режиме чтения, собирает встроенную статистику PostgreSQL и показывает проблемы:

* замедление запросов и ожидание блокировок
* неиспользуемые индексы
* состояние vacuum и репликации
* загрузку соединений и взаимные блокировки
* изменения относительно предыдущих проверок

Диагностика рассчитывается кодом на Go. Опциональный AI-слой объясняет найденные проблемы и позволяет задавать вопросы обычным текстом.

Для агентов и автоматизации предусмотрены MCP и версионированный JSON-вывод. Есть плагин для Claude Code.

Базовые проверки работают без ключа LLM и внешнего сервиса. Проект находится в бете.

GitHub - https://github.com/pgrundev/pgbot

@Golang_google

Читать полностью…

Golang

Highload на Go: System Design, Kubernetes и микросервисы под нагрузкой — новый курс на Mentorix

Highload глазами Go-инженера: как проектировать, писать и эксплуатировать сервисы, которые держат нагрузку. С расчётами и симуляциями, как на реальных собеседованиях.

⚙️ Внутри: перцентили и SLO · конкурентность и профилирование · кэширование · rate limiting · ретраи и circuit breaker · очереди · БД под нагрузкой · Kubernetes · system design
🧩 118 задач с автопроверкой — вся практика на Go
💻 Расчёты и симуляции, как на реальных собеседованиях
🎓 Сертификат · доступ навсегда
▶️ Часть уроков открыта

🏷 −45% Скидка действует 24 часа
19 990 ₽10 995 ₽

Забрать курс со скидкой

━━━━━━━━━━━━━━

На платформе также есть бесплатные курсы:

Golang — основы языка · 🧩 Тренажёр Go
☸️ Kubernetes за вечер · 🐳 Docker: первые шаги
Сети: TCP/IP, HTTP, DNS

📚 Все бесплатные курсы Mentorix

Читать полностью…

Golang

Go 1.27 подменил движок encoding/json. Замерил три конфигурации и нашёл, где стало хуже

В Go 1.27 пакет encoding/json остался тем же по API и перестал быть тем же внутри: теперь это тонкий слой совместимости поверх нового encoding/json/v2. Обещание Go 1 выполняется честно, старый код компилируется и ведёт себя как раньше, но цифры под ним поменялись, причём в обе стороны. Я собрал go1.27.0 из исходников, взял старый go1.24.7 для контроля и прогнал одинаковые бенчмарки в четырёх конфигурациях. Разбор ниже: где выиграли, где потеряли полтора раза на ровном месте, что именно уже изменилось в выводе v1, и какие грабли ждут при переходе на v2.

Коротко для тех, кто спешит: анмаршалинг в структуры ускорился примерно в полтора раза без единой правки в коде; анмаршалинг в any и map[string]any замедлился в полтора раза, причина найдена и сводится к одному флагу совместимости; маршалинг стал чуть медленнее по времени, но заметно экономнее по аллокациям; байты на выходе v1 в редких случаях изменились, тексты ошибок изменились чаще; переход на v2 даёт лучшие цифры во всех сценариях, включая any, но ломает семантику в шести местах, из которых одно ломается тихо.

https://habr.com/ru/articles/1078082/

Читать полностью…

Golang

👩‍💻 Go-профилирование: как найти и исправить «тормоза» в продакшене

Приглашаем на открытый урок.

🗓 9 сентября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Go-разработчик. Продвинутый уровень».

Программа вебинара
✔️ Бенчмаркинг без иллюзий: Научимся писать корректные бенчмарки (Benchmark), которые показывают реальную картину, а не погоду на Марсе.
✔️ Инструменты ниндзя: Освоим go tool pprof и go tool trace. Научимся читать flame-диаграммы (огненные графики) и находить узкие места с точностью до строки кода, включая дизассемблирование ассемблерного кода.
✔️ Дьявол в деталях: Разберем конкретные приемы оптимизации: преаллокация памяти, переиспользование объектов через sync.Pool и «золотые» правила работы со строками.
✔️ Обсудим, когда использование regexp убивает производительность, и как написать эффективную альтернативу.
✔️ Домашнее задание с обратной связью

🔗 Ссылка на регистрацию: https://otus.pw/O8NT/?erid=2W5zFHofQNu


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Golang

👣 В Go 1.27 появились generic methods

Теперь методы конкретных типов могут иметь собственные параметры типов.

Раньше для подобных преобразований приходилось выносить логику в отдельную generic-функцию:

MapList(list, fn)

Теперь можно писать естественнее:

list.Map(fn).Map(fn2)

Пример:

func (List[E]) Map[R any](f func(E) R) List[R]

Это делает generic-код компактнее, улучшает цепочки вызовов и позволяет держать связанную логику рядом с самим типом.

При этом generic methods для интерфейсов пока не поддерживаются - из-за сложностей с генерацией и вызовом конкретных реализаций.

https://go.dev/blog/generic-methods

Читать полностью…

Golang

🖥 Бывший CEO GitHub строит ему замену - и причина в AI-агентах

GitHub уже обрабатывает около 2,9 млрд коммитов в месяц - ещё в апреле было 1,4 млрд. За четыре месяца нагрузка почти удвоилась.

Каждый месяц:

* 130 млн merge pull requests
* 24 млн новых репозиториев
* миллиарды коммитов

Инфраструктура уже не успевает. В этом году GitHub добавил около 3 млн CPU-ядер и 120 ПБ хранилища, а доля нагрузки в Azure выросла с 12% до 58%. Собственные дата-центры упираются уже не столько в бюджет, сколько в доступную мощность.

На этом фоне бывший глава GitHub Томас Домке запустил Entire - платформу, которую строят с расчётом на мир, где код пишут не только люди, но и огромные армии AI-агентов.

https://thenewstack.io/github-2-9b-monthly-commits/

Читать полностью…

Golang

🐷 Pumba - open source-инструмент для chaos testing Docker, containerd и Podman. По сути, это Chaos Monkey на уровне контейнеров.

Он умеет специально ломать окружение:


pumba --interval=30s --random kill "re2:^test"


убивать контейнеры,


pumba netem --duration 5m delay --time 3000 mydb


добавлять сетевую задержку,


pumba iptables --duration 2m loss --probability 0.1 myapp


терять пакеты,


pumba stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer


и нагружать CPU, память или I/O.

Есть ещё pause, restart, rm, ограничение скорости сети, corruption/duplication пакетов, выбор контейнеров по regex и периодические сценарии через --interval.

GitHub: https://github.com/alexei-led/pumba

Читать полностью…

Golang

👣 В Go 1.27 появился почти настоящий LINQ

Автор go-linq показал новую версию библиотеки для Go 1.27, которая позволяет писать типобезопасные цепочки запросов в стиле LINQ:


From(users).
Where(...).
Join(...).
ToSlice()


Главная цель проекта - получить удобство LINQ без привычной цены в виде большого runtime-overhead.

По словам автора, производительность уже близка к вручную написанным циклам, а дальше её планируют ещё улучшать.


GitHub: https://github.com/ahmetb/go-linq

@Golang_google / Папка с полезными Go-ресурсами

Читать полностью…

Golang

👣 Alibaba выкатила skill-up - инструмент на Go для тестирования и прокачки skills у AI-агентов.

Вместо папок с разрозненными промптами, скриптами и eval-файлами здесь используется декларативный YAML-формат. Skill можно описать как конфиг и гонять одинаково локально или в CI.

Поддерживаются три стратегии оценки: обычные правила, скрипты и judge на базе другого агента. Есть совместимость с форматом Anthropic и импорт evals.json.

Здесь есть интересный цикл улучшения: skill-up может находить провальные кейсы, помогать расширять eval-набор и итеративно чинить сам skill.

То есть идея примерно такая: написал skill → прогнал eval → увидел, где агент ломается → обновил → снова прогнал.

https://github.com/alibaba/skill-up

#AI #Golang #AgenticAI #DevOps

Читать полностью…

Golang

👣 `os.ReadFile()` действительно читает весь файл в память. Но RSS может показать почти ноль - и вот почему

Есть интересный эксперимент: читаем файл на 500 МБ через os.ReadFile(), ставим программу на паузу и смотрим RSS процесса.


b, err := os.ReadFile("bigfile.txt")
if err != nil {
panic(err)
}

fmt.Println(len(b))
fmt.Scanln()


Ожидаем около 500 МБ RSS.

А видим условные 3 МБ.

На первый взгляд кажется, что os.ReadFile() ничего не загрузил. Но причина совсем другая.

[]byte - это только descriptor:


slice
├─ ptr ───────────┐
├─ len │
└─ cap │

+-------------------+
| 500 MB byte array |
+-------------------+


Сам slice header на 64-битной системе занимает всего несколько машинных слов. Основные 500 МБ находятся в backing array на heap.

Ключевой момент - liveness analysis.

После:


fmt.Println(len(b))
fmt.Scanln()


переменная b больше не используется.

Для Go это означает, что объект может перестать считаться live ещё до выхода main(). GC получает право освободить backing array, пока программа всё ещё ждёт Enter.

Добавим обращение после паузы:


fmt.Scanln()

fmt.Println(b[0])


И RSS внезапно становится примерно равен размеру файла.

Это хороший пример того, почему:

scope переменной != время жизни объекта для GC.

Чтобы явно сохранить объект живым до определённой точки, в низкоуровневом коде существует:


runtime.KeepAlive(b)


Но использовать KeepAlive просто ради красивого RSS обычно не нужно - он важен прежде всего при работе с finalizer, unsafe, syscall и foreign memory.

Ещё одна ловушка - go run.


go run main.go bigfile.txt


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


/tmp/go-build.../exe/main


а не у самого go run.

Практический вывод для production:


data, _ := os.ReadFile(path)


подходит для небольших файлов, но большой файл означает большую аллокацию, давление на heap и GC.

Для потоковой обработки лучше:


f, err := os.Open(path)
if err != nil {
return err
}
defer f.Close()

r := bufio.NewReaderSize(f, 256<<10)


или вообще:


_, err = io.Copy(dst, f)


Тогда объём рабочей памяти зависит от размера буфера, а не от размера файла.

Главный урок: RSS показывает состояние процесса в конкретный момент, а не полную историю его аллокаций.

И если профилируете память Go-приложения, одного ps мало - смотрите ещё heap profile, runtime.MemStats и GODEBUG=gctrace=1.

Читать полностью…

Golang

👣 Google внезапно объяснила, почему Go может стать главным языком эпохи AI-кодинга

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

Проблема сместилась туда, где автоматизация пока не спасает: всё это нужно прочитать, проверить и потом годами поддерживать. Именно на этом Google строит свежий аргумент в пользу Go.

Go изначально проектировали для больших команд и долгоживущих кодовых баз. Поэтому здесь почти невозможно устроить соревнование по синтаксическим фокусам.

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

Сгенерировал код, запустил компилятор и тесты, получил ошибку, исправил, повторил.

Рядом уже лежат fuzzing, govulncheck, gopls, go fix, профилирование и tracing. Агенту не приходится каждый раз собирать собственный зоопарк инструментов.

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

Меньше вариантов выразить одну и ту же конструкцию, меньше сюрпризов при ревью, проще заметить галлюцинацию модели или странную зависимость.

Для мира, где код начинают генерировать в огромных объёмах, такая предсказуемость становится очень дорогим преимуществом.

Получается забавно: Go долго критиковали за синтаксис, жёсткие правила и отсутствие лишней магии. А теперь именно эти качества неожиданно делают его одним из самых удобных языков для работы с coding agents.

https://developers.googleblog.com/why-go-is-an-ideal-language-for-ai-assisted-software-engineering/

#Golang #Go #AI #Programming #AIAgents

@Golang_google

Читать полностью…

Golang

🔥 Yzma - прямое подключение `llama.cpp` к Go-приложениям для локального inference

Проект позволяет запускать локальные LLM из Go без отдельного inference-сервера.

Что интересно:

- прямой доступ к llama.cpp
- hardware acceleration
- Linux, macOS и Windows
- поддержка WebAssembly
- локальный inference внутри Go-приложения
- удобно для desktop, edge и offline-сценариев

То есть вместо схемы:

Go app → HTTP → отдельный LLM server

можно строить:

Go app → llama.cpp → локальная модель

Полезно для CLI, desktop-приложений, локальных агентов и embedded AI, где важны приватность и отсутствие внешнего API.

GitHub:
https://github.com/hybridgroup/yzma

Читать полностью…

Golang

AvitoTech всегда славился своими проектами на День разработчика, но в этот раз ребята превзошли самих себя!

В честь наступающего Дня разработчика вместе со студией FU2RE и 3D-художником Dmitriev Video они создали большой портал в прошлое — эмулятор 2006 года будущего разработчика. Внутри — олдскульные игры и викторины, за которые можно лутать баллы и подниматься в рейтинге.

Трём лучшим игрокам 15 сентября подарят суперпак настоящих разрабов, внутри которого салфетка на монитор из коллаборации с Elnik, плед, сумка и плюшевый талисман — кот Б/У. Так что времени сыграть ещё много!

P. S. А ещё в канале AvitoTech до 13 сентября будут каждый день выходить крутые праздничные посты. Не пропустите: может быть, и там они спрятали подарки ❤️

Читать полностью…

Golang

Уже используете ИИ в проектах? Уверены, что делаете это эффективно и безопасно?

Разберемся 8 октября на бесплатной конференции Selectel ТехноДень про ИТ-тренды, инфраструктуру, ИИ, данные и информационную безопасность.

Присоединяйтесь, чтобы:
🔺Узнать о реальном опыте внедрения ИИ в технологических компаниях.
🔺Обсудить изменение подходов к информационной безопасности в бизнесе в 2027.
🔺Наметить план по созданию отказоустойчивой инфраструктуры.

Вас ждут 20 экспертных докладов, 20 интерактивных стендов, живое общение и запись подкаста Вселенная Плюс на главной сцене конференции.

Место встречи — Москва, Кластер «Ломоносов». Участие в конференции бесплатное, нужно зарегистрироваться →.

Реклама. АО "Селектел". erid:2W5zFGiGmVs

Читать полностью…

Golang

Сбер представил GigaChat 3.5 Reasoning — флагманскую модель с режимом рассуждений

Новая версия умеет последовательно решать сложные задачи. Сначала разбирает их на этапы и выстраивает план. Затем проверяет промежуточные результаты и исправляет ошибки.

Ещё одна особенность релиза — экономный расход токенов. В среднем на математические расчёты здесь используется на 37% меньше токенов, чем у открытой ИИ-модели DeepSeek V4 Flash Preview.

По сравнению с моделью без режима рассуждений GigaChat 3.5 Reasoning заметно улучшила результаты бенчмарков. В IFBench показатель вырос с 44 до 77 баллов, в Natural Plan — с 64 до 80, а в Live Code Bench v6 — с 56 до 85.

Модель доступна бесплатно по лицензии MIT на HuggingFace и GitVerse. Её можно интегрировать в собственные продукты.

Попробуйте обновлённый режим «Рассуждение» на giga.chat. А также читайте больше подробностей в статье на Хабре.

Читать полностью…

Golang

Unity подключила Claude Code, Codex и Grok к разработке игр 🎮

Компания опубликовала официальный плагин с 31 готовым скиллом для Unity 6+.

Агенту можно поручить конкретную задачу обычным текстом:

* создать экран настроек
* подключить внутриигровые покупки
* настроить физику или навигацию
* собрать мультиплеер и голосовой чат
* исправить проблемы со спрайтами
* настроить звук, локализацию, шейдеры и URP

Агент определяет нужную область Unity и загружает соответствующие инструкции. Плагин поддерживает Claude Code, Codex и Grok, устанавливается через их CLI и не содержит MCP-серверов или хуков.

Репозиторий и команды установки - https://github.com/Unity-Technologies/unity-agent-plugin#install

Читать полностью…

Golang

👣 Go: почему работающий код может содержать гонку данных

Одна горутина записывает значение и выставляет done = true. Другая ждёт этот флаг и читает результат. Программа выводит правильный ответ, но без синхронизации такой код содержит data race.

В статье разбирают:

* когда изменения памяти становятся видимыми другим горутинам;
* как компилятор и процессор могут менять порядок операций;
* что гарантирует отношение happens-before;
* как атомики, мьютексы и каналы обеспечивают синхронизацию;
* почему гонки при работе со строками, срезами и интерфейсами особенно опасны.

С примерами кода, выводом go run -race и экспериментом, где две горутины одновременно прочитали старые значения.

https://func25.dev/posts/go-memory-visibility/

#Go #Golang

Читать полностью…

Golang

⚡️ KubeGUI - open-source десктопный клиент для Kubernetes с нормальным современным интерфейсом.

Позволяет управлять ресурсами кластера без постоянной работы через kubectl:

- Deployments, DaemonSets, Pods и CRD
- live-обновления ресурсов
- встроенный YAML-редактор с валидацией
- работа сразу с несколькими кластерами
- просмотр логов
- shell прямо внутрь workload
- port-forwarding
- графы NetworkPolicy и RBAC
- просмотр Helm-чартов и релизов
- on-demand сканирование уязвимостей через Trivy

Отдельный плюс - kubectl вообще не обязателен: приложение само работает с Kubernetes API.

Под капотом Go + Wails, а интерфейс собран на React, TypeScript и Vite.

https://github.com/gerbil/kubegui

Читать полностью…

Golang

🔥 Go 1.27 - одна из самых насыщенных версий за последнее время.

Самое важное, что добавили:

- generic methods - методы теперь могут иметь собственные параметры типов
- encoding/json/v2 вошёл в стандартную библиотеку
- появился встроенный пакет uuid
- новый профиль goroutineleak помогает искать зависшие goroutine
- выделение небольших объектов ускорили до 30%
- добавили экспериментальный portable SIMD
- go doc теперь поддерживает package@version
- go mod tidy лучше упорядочивает require

Удобная подборка всех изменений Go 1.27 с примерами и ссылками на документацию:

https://antonz.org/go-features/#1.27

Читать полностью…

Golang

🔥 В Go полностью переписали внутренности `sync.Map`

Начиная с Go 1.26, sync.Map официально работает на базе hash trie. Публичный API не изменился, но внутри теперь совсем другая структура.

Как это устроено:

* ключ хешируется в 64 бита
* хеш разбивается на группы по 4 бита
* каждый узел trie имеет до 16 потомков
* lookup проходит по дереву максимум 16 уровней
* структура снижает конкуренцию вокруг одного глобального lock

Но sync.Map всё ещё не универсальная замена обычному map: в тестах статьи он потреблял примерно в 3-5 раз больше памяти.

Использовать его имеет смысл, когда значения в основном один раз записываются и много читаются или goroutine работают преимущественно с разными ключами. В остальных случаях map + Mutex/RWMutex часто проще и лучше.

Очень подробный разбор реализации:

https://victoriametrics.com/blog/go-sync-map-hash-trie/

Читать полностью…

Golang

О!Хакатон возвращается — на кону миллион

Приглашаем Go- и Python-разработчиков, аналитиков и продакт-менеджеров на тревел-тех хакатон от Островка.

Вам предстоит решить одну из двух AI-задач в сфере тревел-теха и побороться за главный приз — 1 000 000 ₽.

Присоединиться к хакатону можно из любой точки мира. Участвуйте командой до пяти человек и выбирайте один из двух треков:

📌«О!дин запрос». Цель для junior-специалистов — создать AI-агента для путешествий и отелей.
📌«О!дин шаг до идеального отеля». Задача для специалистов уровней middle и senior — «переизобрести» опыт бронирования пользователя с помощью AI и новых интерфейсных механик.

📅 Регистрация открыта до 16 октября 2026 года. Стартуем 23 октября.

Скорее присоединяйтесь по ссылке!

Реклама. ООО "БРОНИРОВАНИЕ ГОСТИНИЦ". ИНН 7703389880.

Читать полностью…

Golang

Бархоппинг и разгон факапов? ДА!

Атмосферу «ну мёёёёд» сложно передать словами, но мы попробуем! Делимся видео и фоточками с нашего митапа для Go-разработчиков в Нижнем Новгороде.



Данил Руденко, 2ГИС — «Репозиторий здорового человека»
Зачем нужен паттерн «Репозиторий», почему не стоит тащить в него бизнес-логику, с какими сложностями можно столкнуться при работе с транзакциями и как их решать.

Никита Метелкин, Cloud.ru — «Как написать свой плагин для protoc-gen-go»
Как устроен protoc и как с помощью Go и protogen генерировать собственный код из .proto-файлов.

Александр Бухалко, MWS Cloud Platform — «Взросление OpenAPI-кодогенерации»
Почему одной модели для запроса и ответа может быть мало, как внедрять частичное обновление данных, переходить на OpenAPI 3.1 и работать с полями в Go и Kotlin.

Приходите на наши следующие мероприятия. У нас хорошо

Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD

Читать полностью…

Golang

👣 Google выпустила Go 1.27. Обновление затронуло язык, runtime, стандартную библиотеку и инструменты разработки.

В язык наконец добавили generic methods. Теперь метод может работать сразу с разными типами без отдельных реализаций под int, int32, int64 и другие варианты. Ещё упростили инициализацию embedded-структур и расширили type inference для generic-функций.

Runtime тоже ускорили. Для маленьких объектов до 80 байт стоимость аллокаций снизили до 30%, а в allocation-heavy программах это даёт около 1% общей производительности. Появился и новый профиль goroutineleak в pprof, который помогает находить навсегда зависшие goroutine.

В стандартной библиотеке появился encoding/json/v2 с более строгими настройками и новым streaming API. Старый encoding/json теперь использует v2 внутри для более быстрого unmarshaling, сохраняя обратную совместимость.

Также добавили встроенный пакет uuid, поддержку постквантовых подписей ML-DSA и экспериментальный SIMD API.

Из приятного для повседневной работы: go doc теперь понимает package@version, go mod tidy сам приводит несколько require`-блоков в нормальный вид, а `go fix получил новые modernizer'ы.

https://go.dev/blog/go1.27

@Golang_google

Читать полностью…

Golang

🚀 Kubernetes получил новый open-source инструмент для тех, кто устал дебажить кластеры через десятки команд kubectl.

Skyhook выпустила Radar - современный UI для Kubernetes, который показывает всю картину кластера в одном месте.

Вместо постоянных:
kubectl get
kubectl describe
kubectl logs
kubectl events

можно сразу увидеть:

• граф связей между сервисами и ресурсами
• состояние Deployment, Pod, Service и Ingress
• события и историю изменений
• Helm-релизы
• GitOps-состояние Argo CD и Flux
• проблемы с ресурсами

Radar работает как один Go-бинарник с встроенным React-интерфейсом. Не требует установки агентов в кластер, использует существующий kubeconfig и может запускаться локально.

Проект полностью open-source под Apache 2.0. Есть запуск через kubectl radar, Homebrew, Krew или Helm.

По сути, это попытка сделать современную замену старым Kubernetes Dashboard и тяжёлым GUI-инструментам: быстро, локально и без лишней инфраструктуры.

GitHub:
https://github.com/skyhook-io/radar

Читать полностью…

Golang

Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой
26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания.

В программе два трека — Go и Java, по три доклада в каждом.

Трек Go:
• «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech
• «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK
• «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк

Трек Java:
• «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon
• «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк
• «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK

А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке.

Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.

Читать полностью…

Golang

🚀 Go 1.27: что нового в следующем большом обновлении Go

Go продолжает развивать не синтаксис ради синтаксиса, а то, что реально влияет на production-сервисы.

Главные изменения:

🧬 Generic methods

Методы смогут иметь собственные type parameters:


type Box[T any] struct {
Value T
}

func (b Box[T]) Map[R any](fn func(T) R) Box[R] {
return Box[R]{fn(b.Value)}
}


Это открывает новые возможности для обобщённых библиотек.


⚡ Улучшения работы с памятью

Компилятор получил оптимизации для маленьких аллокаций.

Результат:

- меньше overhead при создании объектов;
- быстрее работа с большим количеством мелких структур;
- улучшения для allocation-heavy приложений.


📦 Новый encoding/json/v2

Появляется экспериментальная новая версия JSON-пакета:


import "encoding/json/v2"


Цель - решить старые ограничения encoding/json и сделать работу с JSON более современной.

🔍 Улучшения runtime

Изменения затронули:

- профилирование goroutine;
- trace;
- таймеры;
- внутренние оптимизации runtime.

Go 1.27 показывает привычный подход команды Go:

меньше магии - больше предсказуемости и производительности в production.

Не революция, а очередная шлифовка языка, который уже лежит в основе Kubernetes, облаков и высоконагруженных систем.

Подробнее:
https://victoriametrics.com/blog/go-1-27/

Читать полностью…
Subscribe to a channel