Category : golang

golang
Ограничение скорости скачивания пользователей в Xray-core

Кто тут любит коммерческие прокси-сервисы? Я не вижу ваши руки? Да, я тоже не особый фанат. Но приходится признавать, что как только домашний Xray с вручную вписанными в JSON ключами выходит за пределы узкого круга непосредственных родственников, приходится разбираться в том же спектре проблем: гео-блоки со стороны сервисов, маршрутизация, слив и слишком обширное использование подписки, из-за чего пользователи начинают мешать друг-другу, а машины блокируются по превышению квоты.Торопитесь? Вот …

  • суббота, 26 сентября 2026 г. в 00:00:16
golang
MLow — голосовой кодек звонков WhatsApp *

* Meta Platforms Inc. (владелец Facebook, Instagram, WhatsApp и Messenger) признана экстремистской организацией, её деятельность запрещена на территории РФ. Facebook и Instagram запрещены в РФ.Когда вы звоните в WhatsApp, Messenger или Instagram*, ваш голос, скорее всего, сжимает не Opus, а MLow - собственный низкобитрейтный кодек Meta*, созданный для плохих сетей и слабых смартфонов. Компания рассказала о нём в инженерном блоге, но ни спецификации, ни исходников, ни описания формата кадра нет.…

  • суббота, 26 сентября 2026 г. в 00:00:15
golang
xk6-sip: SIP-телефония как код

Парадокс 2026 годаНа дворе 2026 год. Веб-сервисы тестируют облачные оркестраторы: тысячи виртуальных пользователей поднимаются из пайплайна, метрики падают в Prometheus, деградации ловит алерт до того, как их заметит клиент. А в телефонии, которая до сих пор держит колл-центры, банки, скорую помощь и диспетчерские, релиз АТС часто проверяют так же, как двадцать лет назад: тестировщик берёт два телефона и звонит сам себе. Нагрузку дают SIPp со сценариями в XML, которые проверяют сигнализацию, но…

  • суббота, 26 сентября 2026 г. в 00:00:14
golang
PostgreSQL: три источника времени в одной таблице

ПроблемаСтек: Gin + GORM v2 + pgx/v5 в режиме simple protocol, PostgreSQL, PgBouncer. Кейс: при оформлении заказа товар резервируется на 30 минут, дальше резерв снимается, а товар удаляется из корзины.За снятие отвечает фоновая джоба. Раз в 5 минут она ищет истёкшие резервы и завершает их.В поддержку прилетает тикет:Пользователь оформляет заказ, фронт показывает таймер «резерв истечёт через 30 минут», но через пять минут из корзины пропадает товар. Воспроизводится у всех клиентов.Разбираемся в …

  • пятница, 25 сентября 2026 г. в 00:00:16
golang
Go сделали скучным — и после нейросетей это выстрелило

Go двадцать лет дразнили языком для дураков. Без дженериков, без перегрузок, без нормальных перечислений, без магии. Синтаксис учится за выходные, выразительность — на уровне табуретки.А теперь смотрим на 2026 год. Индустрия побежала писать AI-агентов и гейтвеи — и пишет их на Go или Rust. Нейронки генерируют код на Go лучше, чем почти на любом другом языке, потому что Go читается. Можно сказать, что язык оказался настолько тупым, чтобы снять пороги входа для LLM. И это, возможно, оказалось сам…

  • пятница, 25 сентября 2026 г. в 00:00:14
golang
Создание коммерческого ПО, в современных условиях

В этой статье я бы хотел поделиться своим взглядом на разработку коммерческого ПО небольшими трудовыми коллективами.И так, начну, пожалуй, и начну издалека. Я человек старой формации, учился как сейчас говорят «хард скилам», и посвятил учебе изрядный кусок своей жизни.Жизнь у меня была сложная, путь школа → институт → работа преграждала масса препятствий, однако же видимо родителям удалось привить мне тягу к знаниям, за что им вечно буду благодарен. Худо бедно, в перерывах между борьбой за выжи…

  • пятница, 25 сентября 2026 г. в 00:00:13
golang
vet молчит, -race молчит: горутины, которые переживают CI

В прошлой статье я писал, что компилятор — первый ревьюер кода, который написал агент. У этой идеи есть слепое пятно, и я в него наступил: конкурентность. Компилятор проверяет типы, go vet проверяет десяток известных шаблонов, -race ловит гонки данных. А горутина, которая никогда не завершится, — это не ошибка типов и не гонка. Код, который не слышит отмену, — тоже.Такой код собирается, проходит vet и go test -race, под нагрузкой тоже живёт. Вылезает проблема позже: на graceful shutdown, когда …

  • пятница, 25 сентября 2026 г. в 00:00:12
golang
Рулим в облака: деплой микросервиса генерации ID в Kubernetes

Привет, Хабр! Продолжаю серию статей по проектированию и разработке отказоустойчивой микросервисной системы сокращения ссылок.Если вы только присоединились, рекомендую ознакомиться с предыдущими частями:Часть 1. Определили требования к системе и декомпозировали её на независимые сервисы.Часть 2. Создали микросервис генерации уникальных идентификаторов.Наш микросервис генерации ID полностью готов, но пока живёт только в среде разработки. Сегодня подготовим его к развёртыванию в локальном Kuberne…

  • четверг, 24 сентября 2026 г. в 00:00:13
golang
Как мы вдвоем писали кроссплатформенный мессенджер: Compose Multiplatform, SFU на Go и сжатие трафи…

Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.Мы разрабатывали другой проект, и поначалу для него был написан минимальный чат на CodeIgniter 4 с Vanilla JS и CSS плюс WebSocket‑сервер на Go. Затем стало очевидно, что такой чат слабоват, а для …

  • четверг, 24 сентября 2026 г. в 00:00:12