Category : golang

golang
Скажи yay -S say

Сейчас, когда утилита say понравилась многим, а я получил массу вопросов и предложений пришло время придать этой массе некоторое ускорение, сформировав сильные вопросы в детальное теническое описание проекта. На днях утилита была добавлена в AUR, что и подколкнуло меня всё же расписать как всё устроено под капотом.Для начала уточню: say, это инструмент для видеозвонков, работающий напрямую в окне терминала. Отдельный GUI не требуется: видеопоток рендерится прямо в терминале в текстовом виде (см…

  • понедельник, 15 декабря 2025 г. в 00:00:07
golang
Минимальный набор практик для микросервиса

Эту статью я написал по следам работы над шаблоном микросервиса на Go — для коллег, которые переходят на Go после Ruby.Такие проекты для меня - это способ немного выдохнуть и спокойно порефлексировать: чего именно не хватало в реальной работе, какие инструменты хотелось иметь под рукой, какие решения приходилось принимать в последний момент. Заодно появляется шанс изучить новые подходы и переосмыслить старые.Цель этого шаблона была простой: дать человеку возможность сразу писать бизнес-логику, …

  • понедельник, 15 декабря 2025 г. в 00:00:06
golang
Golang: Пакет для мульти-логирования на основе log/Slog

«Жизнь требует движения» (Аристотель) Привет Хабр! Это моя первая статья тут, я надеюсь пол��чилось читабельно и интересно :-) Как и следует из названия, в этой статье мы рассмотрим небольшой проект логера, написанный мною на языке golang. За основу взят встроенный и знакомый многим пакет log/slog.Почему Мульти-логер? Все просто, как и следует из названия, пакет содержит функционал записи логов в несколько хранилищ одновременно. Что нужно для подключения нового хранилища? Для подключения снача…

  • понедельник, 15 декабря 2025 г. в 00:00:05
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