Я уже около года занимаюсь выведением в опенсорс общего кода, который используется у нас, в 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-арт с помощью нехитрых преобразований. Разумеется, до идеала было далеко, но р…
Хабр, привет!Меня зовут Артём. Я — fullstack-разработчик уровня Middle, работаю с проектами на Python, JavaScript, Golang, Rust. В этой статье хочу рассказать о том, как я, подсмотрев западное приложение Kahoot, решил с нуля разработать собственную платформу для интерактивного обучения с огромным количеством ИИ-функций.ВведениеВ этом году я работаю над проектом Quaize — веб-платформой, позволяющей создавать учителям и проходить ученикам интерактивные викторины.Была поставлена цель: сделать быст…
Давайте рассмотрим как управляют памятью два популярных языка программирования - Rust и Go.Когда запускается программа, создается процесс с собственным адресным пространством и потоками, выполняющимися на ядрах. Процессор работает с виртуальной памятью - абстракцией, которой управляет операционная система.Например в Go, когда мы создаем массив:arr := make([]byte, 100)Рантайм запрашивает диапазон виртуальных адресов, но физическая память выделяется не сразу, а при первом обращении к данным:first…
Команда Go for Devs подготовила перевод статьи о том, почему автор почти десять лет не использует JSON в своих API и предпочитает Protobuf. Он объясняет, как строгая типизация, компактная бинарная сериализация и генерация кода дают разработчикам больше надёжности и скорости.Если вы разрабатываете или используете API, с вероятностью 99% оно обменивается данными в формате JSON. Он стал фактическим стандартом современного веба. И всё же вот уже почти десять лет, создавая серверы — будь то для личн…
Недавно мне нужно было запустить VLESS-подписку под Windows, подружить её с рабочим VPN и всеми сопутствующими «прелестями». Попробовал v2rayN, Nekoray, Hiddify — и довольно быстро понял, что хочу написать собственный клиент. Так появился singbox-launcher: 👉 https://github.com/Leadaxe/singbox-launcherНиже — немного подробностей, почему так и что получилось.Что пошло не так с существующими клиентамиПервое, что выбивает из колеи — конфиги.Они либо спрятаны глубоко под GUI, либо оформлены так, что…