Category : golang

golang
Ассемблер для гоферов. Структура и макросы. Часть 2

Нет кода быстрее, чем код написанный на ассемблереВ этой части (первая тут) мы поговорим о структуре Go-программы с использованием ассемблера, о хитростях макросов. Будем писать дальше нашу ассемблерную функцию.Структура Go-программы с поддержкой ассемблераВсегда пишем ускоряемую функцию на чистом GoЯ понимаю ваше желание написать сразу сверхбыструю функцию на ассемблере. Но...Правилом хорошего тона будет всегда иметь версию нужной нам функции на чистом Go. Это позволит нашей программе быть ско…

  • воскресенье, 14 декабря 2025 г. в 00:00:11
golang
Структура кода в папке Domain по DDD

Последние 5 лет я изучаю и практикую DDD как стратегический, так и тактический, везде, где представляется возможным. И вот чем больше я погружался в тактическую часть - тем чаще возникал вопрос "это я дурак или лыжи не едут". Пришло понимание того, что огромнейшая часть сообщества структурирует код своего контекста забыв о самом главном: Структура и язык кода должны соответствовать бизнес-доменуДавайте посмотрим на базовую структуру папки DomainВ данной главе огромная возможность нап…

  • суббота, 13 декабря 2025 г. в 00:00:09
golang
Анализ утечек ресурсов в Go: реальные кейсы и их решение

Команда Go for Devs подготовила перевод статьи о том, как GoLand помогает разработчикам вовремя находить и устранять утечки ресурсов. Файлы, соединения, HTTP-ответы, SQL-строки — всё это может незаметно накапливаться и ломать сервис под нагрузкой. В статье на реальных примерах показано, как одна пропущенная Close() приводит к сбоям, и почему встроенный анализ утечек становится незаменимым инструментом для стабильного продакшена.Любое Go-приложение работает с ресурсами: файлами, сетевыми подключ…

  • пятница, 12 декабря 2025 г. в 00:00:14
golang
Self-hosted связь со своей семьей

Я сделал видеосвязь для семьи: один бинарник, домен, 200 рублей в месяц — и всё работаетКогда российское правительство начало блокировать звонки один за другим, я понял, что нужно что-то делать. Семья должна оставаться на связи — это не обсуждается. Но все популярные решения либо заблокированы, либо требуют VPN, либо сложны для установки, а также не дают полного контроля над данными.Я решил создать свой собственный нано-сервис для видео и аудиозвонков. + который:Работает из одного бинарника (ни…

  • четверг, 11 декабря 2025 г. в 00:00:10
golang
Funxy — гибридный язык программирования со статической типизацией

Funxy (фанкси, fun x(y)) — гибридный язык программирования со статической типизацией, pattern matching и удобной работой с бинарными данными.Гибридный означает сочетание императивного и функционального стилей. Можно писать привычные конструкции if/for, а можно — map/filter/match с pipes и композицией. Зависит от задачи и ваших предпочтений — стили спокойно можно смешивать.Статическая типизация с выводом типов — компилятор проверяет типы до выполнения, но в большинстве случаев их не нужно указыв…

  • среда, 10 декабря 2025 г. в 00:00:13
golang
Ассемблер для гоферов. Часть 1

Ассемблер не так страшен, как его малюютВ этой статье я постараюсь дать максимально простое введение в Го-ассемблер — зачем и когда он может понадобиться, а также мы начнём делать функцию умножения для 256-битных чисел, а в следующей части её закончим.Когда нужен Го-ассемблерВ 99% случаев Го-ассемблер вам не нужен. Компилятор Го, если избежать ненужных аллокаций и применить некоторые оптимизационные техники, даёт очень достойные результаты. Подробности по оптимизации быстродействия Го-кода в пр…

  • среда, 10 декабря 2025 г. в 00:00:12
golang
Как куётся опенсорс (часть 1)

Я уже около года занимаюсь выведением в опенсорс общего кода, который используется у нас, в Gaijin Entertainment — порой, это бывает непросто. Как с точки зрения выбора — у нас около двухсот пакетов которые считаются обобщенными, так и со стороны облагораживания кода до состояния "и людям не стыдно показать". Но, Я сюда не жаловаться пришел, а делиться опытом😉Эту статью Я решил начать совместно с принятием решения о том какой пакет будет следующим и на его примере, рассказать через каки…

  • вторник, 9 декабря 2025 г. в 00:00:10
golang
Что нового в GoLand 2025.3

Команда Go for Devs подготовила краткий разбор новинок GoLand 2025.3. В этот раз IDE получила анализатор утечек ресурсов, встроенный Terraform, улучшенную работу с Kubernetes, поддержку нескольких ИИ-агентов и заметный прирост производительности. В версии GoLand 2025.3 добавлен анализ утечек ресурсов. Это очень эффективная инспекция, которая помогает находить незакрытые файлы, подключения и другие ресурсы, прежде чем это вызовет проблемы во время выполнения. Кроме того, в этой версии добавлена …

  • вторник, 9 декабря 2025 г. в 00:00:09
golang
Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate

Первая статья из мини‑серии про валидацию на базе Protobuf. В этой части — концепция spec‑first и protoc‑gen‑validate. В следующей поговорим про protovalidate и то, почему его вообще имеет смысл рассматривать как «следующее поколение» (или же как очередная эволюция в обратную сторону?) Также, чтобы не пропустить следующую часть, очень рекомендую подписаться на мой телеграмм канал :) В общем, зачем я поднимаю эту тему то?Когда говорят про Protobuf, чаще всего всплывают несколько важных бенефито…

  • понедельник, 8 декабря 2025 г. в 00:00:10