Category : golang

golang
За пределами отладчика: полное руководство по отладке Go-приложений

Команда Go for Devs подготовила перевод статьи о том, как отлаживать приложения на Go. Автор показывает, что баги бывают разными: воспроизводимые, случайные, гейзенбаги и конкурентные. А в арсенале Go-разработчика должны быть — TDD, стратегическое логирование, Delve, git bisect и даже онлайн-отладчик GoTutor.Не все баги одинаковы. Одни легко обнаружить и устранить с помощью отладчика. Другие могут проявляться редко или быть крайне неочевидными — искать их всё равно что искать иголку в стоге сен…

  • пятница, 12 сентября 2025 г. в 00:00:09
golang
Несколько занятных вопросов собеседований по Go

Наверное, многим знакомо - пишешь ты на языке (вот скажем, Go) уже не первый год - а на собеседовании всё равно найдут чем удивить :) Вот поделюсь уловом последних дней - не смейтесь над моей наивностью - вдруг кому пригодится!Суета вокруг defer-аДефером мы часто пользуемся (ну хотя бы чтобы мьютексы разлочить) но немного запутать им всё-таки можно. Что напечатает такой код?package main func pipa(x int) { println("pipa", x) } func main() { a := 3 defer pipa(a) defer fu…

  • четверг, 11 сентября 2025 г. в 00:00:08
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