RU

Tool calling в Go: почему вызов модели ещё не разрешение выполнить команду

Tool calling позволяет LLM не только отвечать на вопросы, но и предлагать действия в backend. Но валидный вызов функции ещё не означает, что операци…

GoGolangLLMtool callingfunction callingprompt injectionauthorizationmulti-tenantbackend securityAI agents
Habr
RU

В 39% игр в Тайного Санту двое дарят друг другу. Считаем жеребьёвку как следует

Раздать имена в Тайном Санте — задача на пять строк: перемешал список, проверил, что никто не достался сам себе, готово. Я…

тайный сантажеребьёвкаперестановкигамильтонов циклбеспорядкипаросочетанияалгоритм Кунатеорема Холлавыборка с отклонениемGo
Habr
RU

HTTP-запрос закончился, а LLM ещё работает: как проектировать AI-задачи на Go

Обычный Go backend привык отменять работу вместе с HTTP-запросом. Но если пользователь закрыл вкладку посреди анализа документа, это ещё не означает…

GoGolangLLMcontext.ContextPostgreSQLbackground jobsidempotencydistributed systemsAI SaaSbackend architecture.
Habr
RU

sync.Pool теряет то, что вы хотели сохранить, и держит то, что хотели выбросить

sync.Pool легко принять за простой способ снизить аллокации: бенчмарк показывает ускорение, код уезжает в прод — а там пул внеза…

sync.PoolGoGolangсборщик мусораGCуправление памятьюпрофилированиеоптимизация производительностибенчмаркиGOMAXPROCS
Habr
RU

Go 1.25 сам читает лимит CPU, а automaxprocs молча это выключает

Обновили Go до 1.25 и оставили привычный automaxprocs ? Пустой импорт теперь может отключить встроенное управление GOMAXPROCS и изменить поведе…

GoGo 1.25GOMAXPROCSautomaxprocsKubernetescgroupлимиты CPUпланировщик Goпроизводительностьтроттлинг
Habr
RU

Утро без телефона: зачем я поставил рядом с кроватью матричный принтер

Я собрал будильник, который каждое утро печатает мне чек. Рядом с кроватью стоит матричный Star SP700, а за ним — старый Mac mini, сервер, несколько…

DIYGoMac miniCUPSPostgreSQLStar SP700автоматизацияфитнес браслеты
Habr
RU

Когда «мы не проверили» превращается в «кандидат не знает»

После технического интервью на позицию Go-разработчика я попросил более подробную обратную связь. Часть выводов в ней плохо стыковалась и с тем, что…

найм в ITтехническое собеседованиеобратная связьоценка кандидатовGoрекрутингсобеседование
Habr
RU

ч2: Разбор. Как мы закрывали утечку через tun0 в AmneziaVPN

Приложение, которое вы исключили из VPN на Android, может привязать сокет к tun0 , пройти через ваш туннель и узнать адрес сервера. Летом мы взялись…

AmneziaVPNAmneziaWGtun0SO_BINDTODEVICEgetConnectionOwnerUidVpnServiceJNIGosplit tunnelingутечка IP-адреса
Habr
RU

Зачем я добавил Go-сервис туда, где его не просили

Недавно мне дали тестовое задание на проектирование интеграции между 1С и Yandex 360. На первый взгляд задача выглядела достаточно прямолинейно: 1С…

архитектураGoмикросервисыинтеграцияAPI1СYandex 360базы данныхочередиbackend
Habr
RU

Почему юридический AI‑сервис нельзя строить как обычный чат: проектируем case‑first SaaS на Go

Несколько месяцев назад мне понадобилось заключить договор с Леноблводоканалом. Казалось бы, обычная бюрократическая задача: отправил документы, пол…

GoGolangLLMAISaaSRAGPostgreSQLархитектураюридический AIобработка документов
Habr
RU

Два человека правят один документ офлайн. Изобретаем гугл-док без сервера-арбитра

Гугл-док держится на сервере, который выстраивает все правки в один порядок. Убираем сервер: две копии правятся офлайн и обязаны сойтись символ в си…

CRDTсовместное редактированиеoffline-firstраспределённые системысинхронизацияYATAYjsLoroGolocal-first
Habr
RU

PhishIntel — инструмент WEB-разведки для сбора публичных данных с сайтов и доменов

Доброго времени суток, Хабр! Так как я всё еще нахожусь на творческих каникулах, то имею возможность со всей силы пилить собственные проекты. О…

OSINTweb-разведкаразведказащита информацииPythonGo
Habr
RU

Валидатор не нашёл поле is_admin, а Go его нашёл: пять ошибок при работе с JSON

Один и тот же JSON может привести систему к разным выводам. Валидатор пропустит поле, которое Go‑сервис спокойно прочитает, nil ‑слайс пре…

GoGolangJSONAPIbackendмикросервисывалидация данныхсериализациябезопасность приложенийразработка ПО
Habr
RU

Миллионы товаров и миллисекунды: как устроен специализированный движок каталога

Что происходит, если строить каталог на миллионах товаров не вокруг PostgreSQL и Elasticsearch, а вокруг mmap, собственных индексов и zero-allocatio…

Gommapбазы данныхиндексыпроизводительностьвысоконагруженные системыJSON
Habr
RU

Рантайм показывает ту же память, а под убивают по OOM: пять ошибок под лимитами cgroup

Go показывает стабильную память, heap-профиль молчит, а Kubernetes всё равно убивает под по OOM. Разберём, откуда берётся это расхождение, как на по…

golangGoGOMAXPROCSGOMEMLIMITGOGCcgroupsOOMKilledсборщик мусорауправление памятьюлимиты контейнеров
Habr
RU

62 бесплатных урока сентября: закрываем пробелы в PostgreSQL 18, LLM, Go, ML и не только

В сентябре разбираем то, что сейчас регулярно всплывает в задачах разработчиков, DevOps-инженеров, аналитиков, тестировщиков и ML-специалистов: Post…

подборка уроковобучающие материалыпрофессиональное развитиеPostgreSQL 18LLMeBPFplaywrightRustGodevops
Habr
RU

Fluent Swap: как я вышел за пределы CRUD и начал разрабатывать matchmaking на Go

Большинство backend‑проектов начинаются предсказуемо: HTTP‑запрос, бизнес‑логика, SQL и ответ клиенту. Но что изменится, если вместо очере…

GoGolangwebsocketmatchmakingbackendredisконкурентностьархитектура
Habr
RU

[Перевод] Fire‑and‑forget в Go: практический гайд по управляемым фоновым задачам

У go func() есть неприятная особенность: вместе с результатом выполнения легко потерять контроль над самой задачей. Разберём, как пропускать такую р…

Goгорутиныконкурентностьмногопоточностьканалыфоновые задачиворкерыконтекстпроизводительностьархитектура приложений
Habr
RU

Как я сделал mmap-базу для 4 миллионов товаров и 700 тысяч посадочных страниц

Сделал mmap-базу для 4 млн товаров и получил ~35k RPS. Поиск оказался настолько быстрым, что bottleneck пришлось искать уже после базы. В итоге опти…

GommapJSONSilentJSONMakodbпроизводительностьhighloadиндексыshardingСУБД
Habr
RU

MCP для Juggler на Go

Демонстрация MCP сервера на GO для управления браузером Firefox & Camoufox. ИИ-агенты уже не просто отвечают на вопросы - они действуют. Они отк…

Goai-агентыaimcpagent
Habr
RU

Кэш — это холодильник: TTL, инвалидация и cache stampede

Объясню кэш через холодильник, а потом покажу, где эта аналогия ломается, и что с этим делают в проде. Статья для тех, кто кэш уже ставил, но не раз…

кэшкэшированиеcache stampedesingleflightTTLинвалидация кэшаGoRedisthundering herdпроизводительность
Habr
RU

Восемь раз я думал, что сломал код. Это была платформа

В начале августа я сел делать игру для мессенджера MAX – обычный вордли, слово из пяти букв, шесть попыток. Мини-приложение на ванильном JS, сервер…

MAXмессенджер MAXмини-приложениячат-ботыGoHMACвебхукиTLSМинцифрыVK
Habr
RU

Код написали за нас. Как упростить ревью и сколько это стоит в рантайме

Последнее время я почти не пишу код руками — значительную часть реализации берут на себя AI-агенты. Но работы меньше не стало: теперь нужно задавать…

AI-агентыкодогенерацияархитектура ПОмикросервисывысоконагруженные системыпроизводительностьнакладные расходыGoC++Rust
Habr