Привет, Хабр! Меня зовут Даниил, я программист и архитектор, разрабатываю программное обеспечение и спецификации для создания ПО в YADRO. Продолжаю цикл статей об организации рабочего места по методу Spec-Driven Development. В первой части мы настроили агента Claude Code. Во второй расскажу, как настроить harness — программную инфраструктуру, выступающую оберткой для LLM, и наконец поделюсь решением задач по методу SDD. Слово «harness» переводится на русский язык как «упряжь»: по сути мы исполь…
В 2013 году мне казалось, что я отлично зарабатываю.Я уже около года фрилансил и получал что‑то порядка 100–120 тысяч рублей в месяц. Для того времени — очень неплохо.В голове математика была простая: аренда квартиры — около 25к, еда — около 15к.Значит, живу примерно на 40–50к, а всё остальное — свободные деньги.Поэтому покупка машины в кредит казалась нормальной идеей.Проблема была только в том, что я считал очень оптимистично.Я не учёл платную заочку. Не учёл лечение зубов, на которое как раз…
Каждый разработчик помнит тот самый момент, когда система, которая только что работала идеально, вдруг начинает вести себя так, будто сошла с ума. Когда дашборд в Grafana показывает что-то страшное, а ты стоишь перед ним с кружкой остывшего кофе и не понимаешь, с чего начать.На нашем мероприятии Avito Go Loto разработчики поделились своим опытом без прикрас. О блоате в полтора терабайта, о девяти инстансах, которые передрались за один звонок, о бэкенд-разработчице, которая в пятницу вечером отк…
ВведениеВ последние годы для команд, которые работают с зарубежной инфраструктурой из России, обычный корпоративный VPN перестал быть чем-то, что можно один раз настроить и забыть. OpenVPN, WireGuard, IPsec, различные TLS- и QUIC-обёртки могут работать стабильно месяцами, а потом внезапно начать деградировать: где-то соединение не устанавливается, где-то режется UDP, где-то DPI начинает узнавать сигнатуры, где-то провайдер меняет правила фильтрации.Для компании это превращается не в техническую…
Пока в приложении две роли и три проверки, авторизация умещается в if user.Role == "admin". Но стоит добавить пару ресурсов, ролей и исключений — и условные проверки начинают расползаться по хендлерам, дублироваться и жить своей жизнью. В этой статье разберём, как навести порядок с помощью Casbin: вынесем правила доступа из кода в конфиг, пройдём путь от простого ACL до RBAC с иерархией ролей, соберём HTTP-сервер на Go с авторизационной middleware и обсудим грабли, на которые легко наст…
СодержаниеИдея Стартуем! Конфигурация Сетевой запрос Использование горутин Уведомления Первая версия Рефакторинг Системный трей Интернационализация ЗаключениеЯ хочу рассказать, как подошел к изучению Go на примере разработки приложения для проверки доступности сайтов. Последовательно проведу от идеи до рефакторинга проекта, а по пути объясню выбор тех или иных решений. В начале прошлого года меня заинтересовал язык Go - подкупал рост его популярности. В вакансиях на hh всё чаще встречались треб…
Три часа ночи, алерт, сервис отдаёт 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 запросов в секунду, логи от ра…
Привет, Хабр!Три месяца назад я начал делать NextDNS-clone для Европы. Рекурсивный DNS с фильтрацией рекламы, трекеров и malware. Первый день: открываю Unbound, читаю man, всё понятно. К вечеру понимаю, что не подходит. Через неделю пишу свой резолвер на Go и вспоминаю поговорку про человека, который решил написать почтовый сервер. Никогда такого не было, и вот опять.Сейчас в проде: 10 нод по миру, отвечает на DoH/DoT, фильтрует по миллионам доменов, RAM 60 МБ на ноду. Расскажу, почему ушёл от …
Всем доброго времени суток!Недавно пережитый опыт работы с отчетом хочу выставить на всеобщее обозрение, вдруг кому-то будет полезен. Чтобы не томить и сохранить более технический подход, давайте сразу начнем "разбор полёта".В какой-то момент у нас появился вот такой запрос:выгрузить Excel-отчётоколо 150k строк данныхGo + excelizeобычный HTTP endpointSQL-запросы работали быстро. Индексы были в порядке. Памяти серверу хватало.Но сам Excel-отчёт генерировался больше минуты.На локальной ма…