Category : golang

golang
Почему остатки на маркетплейсах разъезжаются, и почему Kafka вам, скорее всего не нужна?

Часть 1. Анатомия проблемы: откуда берётся окно оверселлингаОстаток разъезжается не потому, что «софт плохой». Он разъезжается потому, что между моментом «товар физически продан» и моментом «покупатель на другой площадке больше не может его купить» проходит время. Это окно я и называю окном оверселлинга. Внутри него вы продаёте то, чего уже нет.Окно складывается из трёх независимых задержек, и это первое, что нужно понять. Большинство обсуждений видит только первую.Задержка 1. Ваша синхронизаци…

  • воскресенье, 28 июня 2026 г. в 00:00:16
golang
Создал хранилище данных в одном зашифрованном файле

В прошлой статье я рассказывал про свой пет-проект qrrot. Тогда это была in memory база данных на Go с TCP-интерфейсом и встроенным ИИ-ассистентом. Идея казалась забавной, но на практике оказалась бесполезной вещью, поэтому я просто продолжил ее ковырять и пробовать сделать из нее что-то интересное и быстрое. В процессе ковыряния в своем проекте я полностью перевернул его суть и идею, и вышло это.Архитектурный сдвиг: уходим от In-MemoryГлавная болячка прошлой версии - все данные лежали в ОЗУ. Е…

  • воскресенье, 28 июня 2026 г. в 00:00:15
golang
Мультивалютность в ERP — считаем деньги в тенге, SOLANA и Theter одновременно [Go]

Статья не про 1С, можно позволить себе расслабиться и поесть. Удалены все ссылки на проект, кроме исходников на Github, чтобы особенно самоотверженные модераторы в очередной раз не приняли годную техническую статью за рекламу… но кто хочет, тот всегда найдёт. Приятного чтения.А помните, было время…Трансграничные переводы USDT в 2026 году в российских реалиях — уже давно не новость для микро- и малого бизнеса нашей страны. Сотни и тысячи автосервисов, сервисно-производственных предприятий и в це…

  • суббота, 27 июня 2026 г. в 00:00:04
golang
Как мы тестировали Tarantool Database на 640 инстансов

Привет, Хабр! Меня зовут Андрей Орлов, я QA‑инженер в команде Tarantool Database, VK Tech. Я занимаюсь функциональным тестированием: проверяю новые фичи и изменения, поддерживаю и развиваю автотесты, разбираю инциденты, анализирую логи и метрики. Нагрузочное тестирование и стресс‑тестирование тоже входит в мои задачи — в том числе для проверки поведения Tarantool Database на больших конфигурациях. В этой статье я расскажу, как мы организовали и провели тестирование Tarantool Database на 640 инс…

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

Шесть лет назад я и Питер Наги задали вопрос, который был достаточно простым, чтобы быть забавным, и достаточно занудным, чтобы быть полезным: могут ли микросервисы на Java быть такими же быстрыми, как микросервисы на Go? Речь не шла о войне языков — такие споры обычно субъективны, а хуже того, отбивают желание разбираться дальше. Практический вопрос был куда у́же: если взять небольшой HTTP-сервис, аккуратно реализовать его на Go и на Java и запустить на одном железе, окажутся ли результаты в о…

  • пятница, 26 июня 2026 г. в 00:00:13
golang
Retry в Go автотестах: как перестать бояться flaky-тестов

ВступлениеFlaky-тесты — неизбежная реальность, как бы нам этого ни хотелось. Особенно в интеграционных и E2E-сценариях, где автотесты зависят от сети, окружения и нестабильных тестовых стендов. Любой временный сбой — и тест падает, а его перезапуск превращается в проблему.В Go ситуация усугубляется тем, что стандартный пакет testing никак не описывает механизм повторного запуска тестов. В результате команды вынуждены реализовывать retry самостоятельно — и вместе с этим появляются новые ошибки, …

  • четверг, 25 июня 2026 г. в 00:00:14
golang
Go для сетевой безопасности: почему (и как) мы перешли на net/netip

Почему нам важна производительность?Работа с сетевой безопасностью требует внимания к деталям. В компании Netopia мы создаем платформу для непрерывной оценки защищенности и управления политиками межсетевых экранов. Наш продукт помогает контролировать доступы, моделировать трафик по сети и автоматизировать изменения правил. Нам доверяют крупные банки, федеральные компании и операторы связи. И требования по безопасности к продукту предъявляют немаленькие.Когда собираешь большие конфигурации сетев…

  • четверг, 25 июня 2026 г. в 00:00:12
golang
Unit of Work в Go: практический гайд по транзакциям между репозиториями

Эта статья выросла из пары быстрых ответов на вопросы на Reddit в ветке r/golang. Первый был о том, стоит ли делать слой репозиториев поверх sqlc. Второй — о том, как работать с транзакциями, когда интерфейс скрывает детали хранилища. Оба ответа превратились в небольшие статьи. Здесь я собираю их вместе и разбираю, что делать, когда транзакции должны охватывать несколько репозиториев.Разберём три этапа, каждый следующий опирается на предыдущий:поставить интерфейс репозитория между сервисной лог…

  • четверг, 25 июня 2026 г. в 00:00:12
golang
cfzt: как я обернул Zero Trust Cloudflare Tunnel в одну команду и зачем туда пришлось добавить вотч…

В домашней инфраструктуре у меня крутится десяток сервисов: Grafana, Zabbix, n8n, Navidrome, ollama, БД, пара дашбордов и тестовых API. Каждый раз, когда нужно было выставить новый сервис наружу, я открывал дашборд Cloudflare и руками проходил один и тот же путь: создать туннель, прописать ingress‑правило, добавить DNS записи, настроить Zero Trust Access. Минут пятнадцать, если без ошибок. С ошибками — больше, потому что один неверно скопированный tunnel ID ломает всю цепочку и приходится откат…

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