Category : golang

golang
Практическое построение сервисов на Go под реальный трафик

Оптимизация кода сервисов на Go под реальную нагрузку Когда сервис на Go начинает «тормозить» под реальной нагрузкой, проблема почти всегда не в самом языке и даже не в алгоритмах. Чаще всего узкие места лежат на уровне работы с памятью, сериализации данных и неочевидных накладных расходов рантайма. Если сервис упирается в сеть, базу данных или внешние API — оптимизация кода даёт ограниченный эффект. Но в CPU-bound сценариях (парсинг JSON, агрегации, обработка данных) каждая лишняя аллокация и…

  • среда, 27 мая 2026 г. в 00:00:22
golang
qrrot — база данных со встроенным ИИ

Так выглядит работа с AIНаписать свою in-memory базу данных — это своеобразный способ изучить Go под капотом и сделать значимый пет-проект. Создавать обычную обертку над map скучно. Поэтому я задался вопросом: а что если написать по настоящему быстрый движок с бинарным хранением, а сверху прикрутить интерактивного ИИ-ассистента, с которым можно общаться на естественном языке, заставляя его самостоятельно выполнять цепочки запросов?Так на свет появился qrrot — in-memory хранилище на Go с TCP-инт…

  • вторник, 26 мая 2026 г. в 00:00:12
golang
QNAME minimisation на практике: RFC 7816, реализация, грабли

Когда вы открываете mail.google.com, ваш рекурсивный резолвер делает три-четыре шага: спрашивает root, потом TLD, потом authoritative для google.com, иногда ещё один уровень. Десятилетиями каждому из этих серверов отправлялся один и тот же вопрос целиком: «дай мне mail.google.com». Root-серверу, который понятия не имеет про google. TLD-серверу, который умеет только делегации com.. Каждый из них видел всю строку, хотя для своей работы нуждался в одной метке.В 2016 году Стефан Бортцмайер написал …

  • воскресенье, 24 мая 2026 г. в 00:00:38
golang
Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге

Мы делаем мессенджер. Весной 2026 наш бэкенд начал отваливаться у части пользователей из России: HTTPS-запросы к API таймаутятся, WebSocket не поднимается. Картина знакомая всем, кто держит сервис с одним доменом и одним IP.Для мессенджера это приговор. Не «неудобно», а именно приговор: приложение, которое не может даже подключиться, бесполезно. И вариант «попросите пользователя сначала включить VPN» нас не устраивал совсем. Ниже разберу, почему мы в итоге встроили обход прямо в приложение, на …

  • воскресенье, 24 мая 2026 г. в 00:00:37
golang
Рабочее место не-вайбкодера: настраиваем harness

Привет, Хабр! Меня зовут Даниил, я программист и архитектор, разрабатываю программное обеспечение и спецификации для создания ПО в YADRO. Продолжаю цикл статей об организации рабочего места по методу Spec-Driven Development. В первой части мы настроили агента Claude Code. Во второй расскажу, как настроить harness — программную инфраструктуру, выступающую оберткой для LLM, и наконец поделюсь решением задач по методу SDD. Слово «harness» переводится на русский язык как «упряжь»: по сути мы исполь…

  • суббота, 23 мая 2026 г. в 00:00:07
golang
Production начинается там, где заканчивается вайбкодинг

В 2013 году мне казалось, что я отлично зарабатываю.Я уже около года фрилансил и получал что‑то порядка 100–120 тысяч рублей в месяц. Для того времени — очень неплохо.В голове математика была простая: аренда квартиры — около 25к, еда — около 15к.Значит, живу примерно на 40–50к, а всё остальное — свободные деньги.Поэтому покупка машины в кредит казалась нормальной идеей.Проблема была только в том, что я считал очень оптимистично.Я не учёл платную заочку. Не учёл лечение зубов, на которое как раз…

  • пятница, 22 мая 2026 г. в 00:00:26
golang
Баги, которые нас воспитали: инженерные истории с Go Loto

Каждый разработчик помнит тот самый момент, когда система, которая только что работала идеально, вдруг начинает вести себя так, будто сошла с ума. Когда дашборд в Grafana показывает что-то страшное, а ты стоишь перед ним с кружкой остывшего кофе и не понимаешь, с чего начать.На нашем мероприятии Avito Go Loto разработчики поделились своим опытом без прикрас. О блоате в полтора терабайта, о девяти инстансах, которые передрались за один звонок, о бэкенд-разработчице, которая в пятницу вечером отк…

  • пятница, 22 мая 2026 г. в 00:00:13
golang
SSH как корпоративный L3-туннель: когда классические VPN-протоколы больше не работают

ВведениеВ последние годы для команд, которые работают с зарубежной инфраструктурой из России, обычный корпоративный VPN перестал быть чем-то, что можно один раз настроить и забыть. OpenVPN, WireGuard, IPsec, различные TLS- и QUIC-обёртки могут работать стабильно месяцами, а потом внезапно начать деградировать: где-то соединение не устанавливается, где-то режется UDP, где-то DPI начинает узнавать сигнатуры, где-то провайдер меняет правила фильтрации.Для компании это превращается не в техническую…

  • четверг, 21 мая 2026 г. в 00:00:19
golang
Авторизация в Go без боли: как Casbin заменяет километры if-проверок

Пока в приложении две роли и три проверки, авторизация умещается в if user.Role == "admin". Но стоит добавить пару ресурсов, ролей и исключений — и условные проверки начинают расползаться по хендлерам, дублироваться и жить своей жизнью. В этой статье разберём, как навести порядок с помощью Casbin: вынесем правила доступа из кода в конфиг, пройдём путь от простого ACL до RBAC с иерархией ролей, соберём HTTP-сервер на Go с авторизационной middleware и обсудим грабли, на которые легко наст…

  • среда, 20 мая 2026 г. в 00:00:14