Category : golang

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
golang
Кроссплатформенное приложение на Go руками PHP разработчика

СодержаниеИдея Стартуем! Конфигурация Сетевой запрос Использование горутин Уведомления Первая версия Рефакторинг Системный трей Интернационализация ЗаключениеЯ хочу рассказать, как подошел к изучению Go на примере разработки приложения для проверки доступности сайтов. Последовательно проведу от идеи до рефакторинга проекта, а по пути объясню выбор тех или иных решений. В начале прошлого года меня заинтересовал язык Go - подкупал рост его популярности. В вакансиях на hh всё чаще встречались треб…

  • среда, 20 мая 2026 г. в 00:00:12
golang
Почему ваши логи бесполезны и как это починить за полчаса

Три часа ночи, алерт, сервис отдаёт 500. Открываете логи и видите:2026-05-12 03:14:22 ERROR Something went wrong 2026-05-12 03:14:22 ERROR Failed to process request 2026-05-12 03:14:23 ERROR Unexpected error occurred 2026-05-12 03:14:23 INFO Request completedКакой запрос сломался? Какой пользователь? Какой endpoint? Что за ошибка? В логе этого нет. Вы начинаете прыгать по timestamp, пытаетесь руками сопоставить строки друг с другом, а если сервис обрабатывает 100 запросов в секунду, логи от ра…

  • вторник, 19 мая 2026 г. в 00:00:09