Category : golang

golang
Приватная Cвязь на Go и Flutter

От автораВ последнее время очень хочется мессенджер, в котором: Нет центрального сервера Сообщения шифруются end-to-end и не хранятся в открытом виде нигде Любой при необходимости может поднять свой сервер легко и быстро и присоедениться к общей сети Один сетевой стек вместо зоопарка протоколовНа Go есть библиотека libp2p, поддерживает работу с множеством транспортов, имеет встроенную аутентификацию пиров и предоставляет фундамент для децентрализованных P2P-сетей, которую крайне интересно было…

  • понедельник, 20 апреля 2026 г. в 00:00:15
golang
DDD в Go без красивых схем: как один платеж получил три курса валют

Писать про DDD легко, пока в примерах User, Order и пара красивых стрелочек. В проде оно обычно выглядит менее аккуратно: у клиента в интерфейсе одна сумма, списывается другая, саппорт открывает админку и видит третью.Расскажу про платежный кусок, где мы на Go в какой-то момент уперлись в курсы валют. Названия сервисов чуть изменены, но суть та же. Это не история про “как мы построили идеальную архитектуру”. Скорее наоборот: сначала сделали нормально на вид, потом оно начало протекать в самых н…

  • понедельник, 20 апреля 2026 г. в 00:00:13
golang
Деконструкция GO: CPU, RAM и что там происходит. Reordering, atomics, locks, fences. Часть 1.3

С постановкой проблем в прошлой статье мы почти закончили и вывели самое важное – природу состояния гонки и состязания за кэш. В этой статье мы также разберем оптимизацию, порождающую часть проблем синхронизации – instructions reordering, а также механизмы решения вышеуказанных проблем.В этот раз снова будет Go Assembler, а также снова будут примеры на Go. В прошлый раз это было необходимое зло во имя соответствия реальностиНапоминаю, что эта статья – часть большого цикла разбора языка программ…

  • понедельник, 20 апреля 2026 г. в 00:00:12
golang
Модно не значит правильно — про pgx, метрики и OpenTelemetry

Всё началось с одного вопроса от старшего коллеги — что pgx предоставляет для сбора метрик. Казалось простым: открыл документацию, увидел QueryTracer, решил что вот оно — замена декоратору. Проверил руками и сразу споткнулся: транзакция дала три значения вместо одного. Начал копать глубже — и нашлось три разных инструмента, QueryTracer, метрики и OpenTelemetry, которые легко перепутать если не разбираться. Эта статья о разнице между драйверами, обёртками и инструментами замера производительност…

  • воскресенье, 19 апреля 2026 г. в 00:00:16
golang
Деконструкция GO: CPU, RAM и что там происходит. Многозадачность, многопоточность, кэши, проблемы. …

В прошлой статье я немного слукавил, сказав, что мы будем разбирать атомики, барьеры и системные вызовы. Я пару дней поразмышлял и осознал – а зачем вообще это объяснять, если мы даже не знаем про причину их возникновения и проблемы, которые они решаютВ части 1.1 мы рассмотрели базовые инструкции, которые выполняет наш CPU и которыми в конечном счете и являются наши прекрасные строчки на Go. Но возникает закономерный вопрос: “Окей, мы поняли как работает на одном ядре, но Go у нас во многом про…

  • воскресенье, 19 апреля 2026 г. в 00:00:14
golang
Clean Architecture + DDD в Go: как не превратить проект в 200 файлов ни о чём

Немного цифр, прежде чем начатьПрежде чем погружаться в архитектуру, давайте посмотрим на контекст, в котором всё это происходит.По данным исследования McKinsey 2022 года, технический долг составляет до 40% всего технологического портфеля компаний. И это не просто цифра в отчёте. Согласно опросу 2024 года среди технических руководителей, у более чем 50% компаний технический долг занимает свыше четверти всего IT-бюджета, блокируя внедрение новых функций. (Источник: vFunction, 2025)При этом иссле…

  • воскресенье, 19 апреля 2026 г. в 00:00:13
golang
Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1

Go-код никогда не исполняется напрямую.Любая строка Go превращается в машинные инструкции, которые выполняет CPU.В этой статье мы разберём:1) Какие инструкции генерирует компилятор Go2) Как выглядит Go assembler3) И что на самом деле выполняет процессорДумаю с обзором и общими положениями мы закончили, поэтому начнем с фундамента – что происходит в CPU когда мы запускаем наше GO-приложение. Конкретно в этой статье разберем основные инструкции, которые может выдать для нашего CPU компилятор Go, …

  • пятница, 17 апреля 2026 г. в 00:00:11
golang
Распознаём реквизиты из карточки контрагентов: Как мы сделали API для извлечения реквизитов из доку…

Привет, Хабр!Каждый, кто работал с бухгалтерией, CRM или просто заводил контрагента вручную, знает эту боль. Вам присылают карточку компании в PDF, договор в DOCX или просто текстовый файл с реквизитами. Задача: достать оттуда ИНН, КПП, расчётный счёт и БИК, чтобы не схлопотать штраф за неверные данные.Можно нанимать стажёра, который будет перепечатывать это в Excel. А можно довериться машине.Мы в нашей компании долгое время решали эту проблему для своих внутренних задач (интеграция с 1С и авто…

  • четверг, 16 апреля 2026 г. в 00:00:15
golang
Как мы погрузились в теорию компиляторов и написали свой транслятор кода

Всем привет! Меня зовут Егор Ермаков, я бэкенд‑разработчик в группе разработки процессинга Техплатформы городских сервисов Яндекса.Техплатформа — это инфраструктурная платформа для всех городских сервисов Яндекса: Такси, Еды, Лавки, Доставки, а также для различных шеринговых сервисов — каршеринга, зарядных станций, самокатов и других.Один из ключевых сервисов нашей команды — ProcaaS (Processing as a Service). Он предназначен для асинхронного выполнения динамических сценариев, которые:состоят из…

  • четверг, 16 апреля 2026 г. в 00:00:14