Category : golang

golang
Новый экспериментальный API для JSON в Go

Команда Go for Devs подготовила перевод статьи о новом экспериментальном API для работы с JSON в Go. Спустя почти 15 лет после появления encoding/json в стандартной библиотеке разработчики столкнулись с его ограничениями. В версии Go 1.25 появился экспериментальный encoding/json/v2 — он решает старые проблемы, добавляет потоковую обработку и повышает производительность.ВведениеJavaScript Object Notation (JSON) — это простой формат обмена данными. Почти 15 лет назад мы написали о поддержке JSON …

  • четверг, 11 сентября 2025 г. в 00:00:07
golang
Мониторинг SSL-сертификатов в oVirt Engine: как мы научились спать спокойно благодаря Go и Promethe…

Авторы статьи: Артем Зубков, Junior администратор отдела DevOps.В современных распределённых системах надёжность и безопасность инфраструктуры напрямую зависят от корректного функционирования криптографических компонентов, в частности — SSL/TLS-сертификатов. Одним из критически важных аспектов эксплуатации таких систем является своевременный мониторинг срока действия сертификатов, поскольку их просрочка может привести к нарушению работы сервисов, недоступности API, сбоям в аутентификации и даже…

  • четверг, 11 сентября 2025 г. в 00:00:06
golang
Топ 5 возможностей Gin, которые должен знать каждый Go-разработчик

Команда Go for Devs подготовила перевод статьи о скрытых возможностях Gin-фреймворка. Даже если вы давно пишете API на Go, в арсенале Gin есть несколько приёмов, которые сделают ваш код быстрее, надёжнее и проще в сопровождении. От кастомных валидаторов до graceful shutdown — фишки, о которых знают не все. При создании веб-API на Go, фреймворк Gin часто становится первым выбором благодаря своей скорости и простоте. Большинство разработчиков знакомы с его базовыми возможностями, но у Gin есть и …

  • среда, 10 сентября 2025 г. в 00:00:11
golang
Как мы выследили регрессию использования памяти в продакшен-сервисах на Go 1.24

Команда Go for Devs подготовила перевод статьи о том, как команда инженеров выявила регрессию использования памяти в Go 1.24. Оказалось, что всего одна оптимизация в аллокаторе памяти, случайно потерянная при рефакторинге, заставляла Go «съедать» сотни мегабайт RAM. Но сообщество Go-разработчиков быстро нашло и устранило проблему.Когда в начале 2025 года вышел Go 1.24, мы с энтузиазмом начали раскатывать его на наши сервисы. Главная новинка — новая реализация map на основе Swiss Tables — обещал…

  • вторник, 9 сентября 2025 г. в 00:00:10
golang
Часть вторая. Как я пытался засунуть gRPC в браузер — продолжение

Предыдущая частьКартина мира: почему браузер — главный блокер для «настоящего» gRPCЕсли коротко, gRPC живёт поверх HTTP/2 и активно полагается на стримы. А в браузере до сих пор нет низкоуровневого API, который позволил бы JavaScript управлять HTTP/2‑стримами на том уровне, который нужен gRPC. Даже unary‑вызов в gRPC — это частный случай стрима: открыли поток, отдали запрос, забрали ответ, закрылись. Пока браузеры не дадут этот «рычаг», все WEB‑решения — это компромиссы разной степени изящности…

  • вторник, 9 сентября 2025 г. в 00:00:09
golang
if err != nil: почему мы (не) любим обработку ошибок в Go? Обзор предложений по её улучшению

Привет, Хабр! Меня зовут Павел Агалецкий, я ведущий инженер в платформе Авито. Эта статья на одну из самых холиварных тем, о которой вы могли слышать или читать множество раз. При обсуждении Go, особенно новичками или представителями других языков программирования, камнем преткновения обычно становится проверка ошибок — if err != nil. Рассказываю, какие есть особенности и нюансы, сравниваю обработку ошибок в Go и других языках. Говорим о подходах к изменению обработки ошибок и обсуждаем последн…

  • вторник, 9 сентября 2025 г. в 00:00:08
golang
Миша — консольный SSH клиент

ПредысторияУ меня появилось желание изучить go и написать на нем какой-нибудь open-source проект, изначально идей и проблем которые я мог решить в голове не былоНа работе часто приходилось подключаться на несколько разных машин за рабочий день - доступы к ним лежали в разных чатах, файлах и тдДанная ситуация очень сильно меня напрягала, что приходилось тратить большое кол-во времени на то, чтобы найти правильные доступы, где-то было подключение по паролю, где-то по ключу и из-за этого данный пр…

  • воскресенье, 7 сентября 2025 г. в 00:00:06
golang
Как превратить SQL в API на Go?

Команда Go for Devs подготовила перевод статьи о том, как превратить SQL в полноценный API прямо в Go. Автор показывает, как можно безопасно принимать WHERE-условия в виде SQL-подзапросов, валидировать их и использовать для запросов к базе. Просто, элегантно и почти без лишнего кода.Вашему API нужно поддерживать запросы, которые слишком сложны для простого CRUD, но при этом недостаточно хитрые, чтобы оправдать использование GraphQL? Попробуйте принять ограниченный набор SQL-условий WHERE, реали…

  • суббота, 6 сентября 2025 г. в 00:00:08
golang
Оптимизация памяти в Go: 20 приёмов для эффективных приложений

Команда Go for Devs подготовила перевод статьи о том, как оптимизировать использование памяти в Go-приложениях. Автор делится двадцатью приёмами — от выбора ресивера метода и правильной инициализации slice до кастомного управления памятью и профилирования с pprof. TL;DR: мелкие улучшения складываются в заметный прирост производительности и стабильности.Как разработчик на Go, я провёл бесчисленные часы, оптимизируя использование памяти в своих приложениях. Это критически важная часть создания эф…

  • пятница, 5 сентября 2025 г. в 00:00:14