RU

Как я писал in-memory векторный движок на Go — и в каком месте он обогнал hnswilb

Полгода назад я начал писать in-memory базу с векторным поиском на Go: RESP-протокол, HNSW-индекс, WAL, многопоточность. Рассказываю, что из этого выш…

векторные базы данныхвекторный поискhnswgolanggoin-memorybenchmarkквантизацияrag
Habr
RU

Используем sqlc в Го: нужно ли делать отдельный слой «репозиторий», или достаточно сгенерированного?

Всем привет! Эта статья является выжимкой моего опыта. Возможно для кого-то это очевидные вещи, тем не менее, считаю, что она может мыть полезна начин…

sqlcgolangsolid
Habr
RU

Технический долг — это не только legacy: как мы уменьшаем разброс решений между Go-сервисами

Когда компания растёт из одного продуктового направления в несколько, технический долг начинает выглядеть иначе. Проблема уже не в «старом коде», уста…

golangмикросервисытехнический долгархитектурарефакторингстандартизацияшаблонизацияуправление зависимостямибэкендrenovatebot
Habr
RU

От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходит …

highloadbackendgolanggoпроектирование системпрограммированиевысоконагруженные системыozon tech
Habr
RU

Как я добавил MAX в китайский AI-мост и запустил Claude прямо в мессенджере

Я хотел использовать Claude прямо в мессенджере MAX — без браузера, без переключения контекста. Готового решения не было. Нашёл на GitHub китайский пр…

gogolangclaudeaimax мессенджерopen sourceplugin architectureчат-ботanthropicконтрибьюция
Habr
RU

Плагины в Go-автотестах: как вынести инфраструктуру за пределы тестов

Почему отчётность, статистика и логирование в Go-автотестах превращаются в костыли — и как плагинная модель позволяет вынести инфраструктуру за предел…

gogolangqaqa automationtest frameworktest automationgo testавтотестыallureallure report
Habr
RU

[Перевод] Unit of Work в Go: практический гайд по транзакциям между репозиториями

Когда у каждого репозитория есть свой Tx , код может выглядеть чисто, но атомарность всё равно сломается: один Store откатится, другой уже успеет зако…

golanggoрепозиторийтранзакцииUnit of Workинтерфейсысервисный слойsqlc
Habr
RU

cfzt: как я обернул Zero Trust Cloudflare Tunnel в одну команду и зачем туда пришлось добавить вотчдог для QUIC

В домашней инфраструктуре у меня крутится десяток сервисов: Grafana, Zabbix, n8n, Navidrome, ollama, БД, пара дашбордов и тестовых API. Кажд…

golangnetworktunnelcloudflareсетиclidevtoolszerotrustself-hosted
Habr
RU

Тёмная сторона Go: разбор живых уязвимостей с продакшена и инструменты против них

Тёмная сторона есть, наверное, у каждого языка. У Go она выражена слабее: язык структурный, понятный, неплохо защищён по умолчанию. Но это не индульге…

Gogolangинформационная безопасностьбезопасная разработкаHTTP request smugglingJWTлогированиеgovulncheckDevSecOpsOWASP
Habr
RU

Писал мониторинг на Go «за выходные» — застрял на месяцы. Вот на чём

В этой статье я расскажу, на какие подводные камни я споткнулся при разработке своего пет‑проекта — мониторинга сайтов на Gol…

мониторингмониторинг сайтаgogolanguptimeгорутиныssrfDNS rebindingtimescaledbpostgresql
Habr
RU

Рецензия на книгу «Go: разработка приложений в микросервисной архитектуре»

Июнь — месяц рецензий на книги по языку Go в нашем блоге SSP SOFT. Сегодня разбираем книгу Юлии Поповой «Go: разработка приложений в микросервисной ар…

работа gogogolangкниги по программированиюкниги по go
Habr
RU

10 вопросов на Go собеседовании, которые валят большинство джунов

Готовиться к Go-собеседованию по списку с GitHub — значит знать ровно то же, что знают все остальные. Интервьюеры это чувствуют сразу. В этой статье —…

golanggoсобеседованиеjuniorgoroutineconcurrencychanneldefersliceinterface
Habr
RU

Почему в Go больно писать автотесты (и дело не в синтаксисе)

testing в Go даёт только примитивы. Разбираем, почему автотесты в Go быстро превращаются в боль, и какого слоя исполнения в нём не хватает. Читать дал…

gogolangавтотестытестированиеинтеграционные тестыtestingtest frameworkallureaxiomqa automation
Habr
RU

Fanotify — что он может дать по сравнению с inotify и что попросит взамен

Привет, Хабр! На связи Даниэль из InfoWatch, разработчик решений класса информационной безопасности. В предыдущей статье мы рассматривали задачу контр…

fanotifyinotifylinuxинформационная безопасностьgolang
Habr
RU

Industrial Network Scanner: как мы написали на Go инструмент аудита безопасности ICS/SCADA-сетей

Привет, Хабр! Хочу рассказать об инструменте, который мы делали для реальных задач — аудита безопасности промышленных сетей. Называется  Industri…

промышленные сетиплкmodbusgogolangscadaot-securityindustrial-cybersecuritypentestingopen-source
Habr
RU

Я написал визуализатор сборщика мусора для Go — теперь GC не чёрный ящик

Сборщик мусора в Go обычно воспринимается как что-то, что просто работает. И это, в общем, хорошо: большую часть времени о нём действительно не хочетс…

gogolanggcgarbage collectorсборщик мусораgogcopen sourceperformancetui
Habr