Category : golang

golang
Все тесты зелёные, а байты разные: как я проверяю порты бинарных форматов

В свободное время пишу на чистом Go порты CRDT-движков. CRDT - это структуры, на которых держится совместное редактирование в реальном времени, вроде гугл-доков: несколько человек правят один документ, и копии сходятся к одному состоянию без центрального арбитра. Эталонные реализации живут на других языках: Yjs на JavaScript, Loro и data model протокола Willow на Rust. Я переписываю их на Go, потому что FFI и CGO плохо ложатся на мобилку и WASM, а pure-Go порт собирается куда угодно. И смысл та…

  • воскресенье, 21 июня 2026 г. в 00:00:06
golang
Тёмная сторона Go: разбор живых уязвимостей с продакшена и инструменты против них

Статья написана по мотивам доклада Георгия Фатеева (Application Security инженер, МТС Web Services) на конференции GolangConf. Представьте обычный HTTP-обработчик. Пользователь передаёт имя файла через query-параметр, код подставляет это имя в shell-команду и зовёт ls -l. Выглядит безобидно. А теперь пользователь присылает вот такое значение:/?filename=.;rm%20-rf%20/ Go аккуратно соберёт и выполнит команду:sh -c "ls -l .;rm -rf /" И снесёт систему по своей оси. Уязвимый Go-обработчик: …

  • воскресенье, 21 июня 2026 г. в 00:00:05
golang
Проектирование веб-краулера. Как решать System Design?

Привет! Продолжаю разбирать классические задачи с System Design интервью на стримах (за анонсами можете следить тут https://t.me/siliconchannel), а это текстовая версия стрима. В прошлый раз была бесконечная лента, сегодня очередная классика жанра - веб-краулер. Условие звучит примерно так:Спроектировать веб-краулер, который обходит интернет, вытаскивает со страниц текст и складывает его в хранилище. На этом тексте потом будут обучать LLM (условный ChatGPT). На весь обход даётся 5 дней - данные…

  • воскресенье, 21 июня 2026 г. в 00:00:04
golang
Как мы построили распределённый мониторинг аптайма

В прошлый раз я писал про рекурсивную задачу мониторинга: кто мониторит монитор? Если Prometheus упал — вы не видите ничего, и самое коварное тут в том, что отвалившийся мониторинг внешне неотличим от идеальной стабильности. Та статья заканчивалась честно и немного грустно: чистого решения нет, есть только слои подстраховки и остаточный риск, с которым приходится жить.Эта статья — про то, что было дальше. Я попробовал зайти с другой стороны: не «как защитить монитор от падения», а «как сделать …

  • суббота, 20 июня 2026 г. в 00:00:07
golang
Я собрал свой мессенджер по вечерам после работы

Я обычный инженер‑программист в банке. Вечерами, после работы и семьи, я начал эксперимент: смогу ли я один, с помощью нейросетей, сделать мессенджер таким, каким, как мне кажется, он должен быть? Не «убийцу Telegram» или кого‑либо другого, а просто альтернативу — спокойное место для общения. Без шума, без бесконечных кружков, без ощущения, что ты должен читать каналы, на которые никогда не подписывался.Знаете это чувство, когда подписки и личные чаты свалены в одну кучу? Да, папки есть, но эти…

  • пятница, 19 июня 2026 г. в 00:00:10
golang
Как незаметная indirect-зависимость в Go дописала ручку в ваш HTTP-сервер

Как незаметная indirect-зависимость в Go дописала ручку в ваш HTTP-серверВсе примеры из статьи лежат в репозитории github.com/korableg/init-injection-example. Код «вредоноса» написан в учебных целях — чтобы показать класс проблемы, а не дать готовый инструмент. Запускайте только в песочнице.История простая: у нас есть аккуратный сервис на net/http с единственной ручкой /time. Мы обновляем одну библиотеку через go get, ничего не меняя в своём коде. После рестарта в сервисе появляется ручка /__in…

  • четверг, 18 июня 2026 г. в 00:00:14
golang
Как управлять модовыми серверами без боли: наш опыт с Docker, Go и MiniMin

Всем привет! Частенько ли у вас возникает желание пойти в одну очень популярную песочницу (Minecraft) ? Я думаю раз в пол года - год у многих возникает такое желание. И также часто возникает желание поставить парочку… сотен модов.Этот пост написан для себя-любимого и для тех людей кого тоже очень бесит настраивать моды , пытаться их синхронизировать между друзьями. Я не претендую на какой то Clean код и тд и тп. Сразу признаюсь. Код писали ИИ агенты. Я просто как обычный обыватель и разработчик…

  • среда, 17 июня 2026 г. в 00:00:10
golang
Слепая дегустация для кода

Привет, Хабр. Я Полина, продакт и главный редактор медиаплатформы «Своё Вино» от Россельхозбанка. Помните, не так давно мы говорили с вами о том, что общего у вина и ИТ? На платформе «Своё вино» мы с редакцией обычно говорим о терруарах, стилях и винтажах, но в этот раз попробуем применить ту же оптику к языкам программирования. Попробуем угадать язык по пяти строкам кода и заодно понять, по каким «ароматам» и «танинам» наш мозг так быстро их различает.Если вы когда-нибудь выбирали вино по этик…

  • вторник, 16 июня 2026 г. в 00:00:12
golang
Как тестировать LLM-фичи: пишем автоэвалы и гоняем их в CI

Привет! У нас в проде живёт бот, который отвечает на вопросы по документации продукта — обычный RAG. Первые месяца три мы катили его, как все: поправил промпт, прогнал пяток вопросов руками, поставил в голове галочку «вроде стало лучше» и выкатил. Закончилось это предсказуемо. Коллега подкрутил промпт ретривера под свой кейс и по дороге сломал мой, причём заметили мы это через две недели по жалобе пользователя. А когда обновились на свежую версию модели, часть ответов просто уехала непонятно ку…

  • вторник, 16 июня 2026 г. в 00:00:11