Команда Go for Devs подготовила перевод статьи о том, как GoLand помогает разработчикам вовремя находить и устранять утечки ресурсов. Файлы, соединения, HTTP-ответы, SQL-строки — всё это может незаметно накапливаться и ломать сервис под нагрузкой. В статье на реальных примерах показано, как одна пропущенная Close() приводит к сбоям, и почему встроенный анализ утечек становится незаменимым инструментом для стабильного продакшена.Любое Go-приложение работает с ресурсами: файлами, сетевыми подключ…
Я сделал видеосвязь для семьи: один бинарник, домен, 200 рублей в месяц — и всё работаетКогда российское правительство начало блокировать звонки один за другим, я понял, что нужно что-то делать. Семья должна оставаться на связи — это не обсуждается. Но все популярные решения либо заблокированы, либо требуют VPN, либо сложны для установки, а также не дают полного контроля над данными.Я решил создать свой собственный нано-сервис для видео и аудиозвонков. + который:Работает из одного бинарника (ни…
Funxy (фанкси, fun x(y)) — гибридный язык программирования со статической типизацией, pattern matching и удобной работой с бинарными данными.Гибридный означает сочетание императивного и функционального стилей. Можно писать привычные конструкции if/for, а можно — map/filter/match с pipes и композицией. Зависит от задачи и ваших предпочтений — стили спокойно можно смешивать.Статическая типизация с выводом типов — компилятор проверяет типы до выполнения, но в большинстве случаев их не нужно указыв…
Ассемблер не так страшен, как его малюютВ этой статье я постараюсь дать максимально простое введение в Го-ассемблер — зачем и когда он может понадобиться, а также мы начнём делать функцию умножения для 256-битных чисел, а в следующей части её закончим.Когда нужен Го-ассемблерВ 99% случаев Го-ассемблер вам не нужен. Компилятор Го, если избежать ненужных аллокаций и применить некоторые оптимизационные техники, даёт очень достойные результаты. Подробности по оптимизации быстродействия Го-кода в пр…
Я уже около года занимаюсь выведением в опенсорс общего кода, который используется у нас, в Gaijin Entertainment — порой, это бывает непросто. Как с точки зрения выбора — у нас около двухсот пакетов которые считаются обобщенными, так и со стороны облагораживания кода до состояния "и людям не стыдно показать". Но, Я сюда не жаловаться пришел, а делиться опытом😉Эту статью Я решил начать совместно с принятием решения о том какой пакет будет следующим и на его примере, рассказать через каки…
Команда Go for Devs подготовила краткий разбор новинок GoLand 2025.3. В этот раз IDE получила анализатор утечек ресурсов, встроенный Terraform, улучшенную работу с Kubernetes, поддержку нескольких ИИ-агентов и заметный прирост производительности. В версии GoLand 2025.3 добавлен анализ утечек ресурсов. Это очень эффективная инспекция, которая помогает находить незакрытые файлы, подключения и другие ресурсы, прежде чем это вызовет проблемы во время выполнения. Кроме того, в этой версии добавлена …
Первая статья из мини‑серии про валидацию на базе Protobuf. В этой части — концепция spec‑first и protoc‑gen‑validate. В следующей поговорим про protovalidate и то, почему его вообще имеет смысл рассматривать как «следующее поколение» (или же как очередная эволюция в обратную сторону?) Также, чтобы не пропустить следующую часть, очень рекомендую подписаться на мой телеграмм канал :) В общем, зачем я поднимаю эту тему то?Когда говорят про Protobuf, чаще всего всплывают несколько важных бенефито…
Привет, Хабр! Я бэкенд-разработчик в спортивном медиа Спортс”. В этой статье расскажу о glinq – LINQ-подобном API для работы с коллекциями в Go. После появления дженериков в Go 1.18 стало возможным реализовать type-safe функциональные операции без рефлексии и дорогостоящих приведений типов.Что такое glinqglinq — это библиотека для функциональной работы с коллекциями, вдохновлённая LINQ из C#. Основная идея — превратить императивные циклы в декларативные цепочки операций:// Императивный стиль re…
Я долго размышлял, с чего всё началось, и, кажется, теперь ясно вижу ту самую точку, откуда пошёл настоящий путь. Ещё в институте, когда мы изучали C/C++, мне внезапно пришла в голову мысль попробовать превращать изображения в ASCII-арт, просто ради эксперимента. Несколько бессонных ночей за кодом, и у меня получилось.Мне удалось создать небольшую утилиту, которая получала на вход изображение и превращала его в ASCII-арт с помощью нехитрых преобразований. Разумеется, до идеала было далеко, но р…