Рубрика «Go»
Кросс-компиляция и запуск консольного Go‑приложения на Android, Windows, macOS и Linux
2025-11-21 в 9:01, admin, рубрики: android, Go, ruvds_статьи, консоль, кросс-компиляция, утилита
Go profiling lifecycle: от разработки до прода. Инструменты и практики
2025-11-21 в 6:20, admin, рубрики: Go, golang, monitoring, performance, Profiler, profilingПривет! В данной статье хотел бы раскрыть тему - почему на 'младших' стендах api работает стабильно, но в проде начинаются проблемы: рост памяти, кол-во горутин множится, и через несколько часов - просадка производительности, gc не справляется, out of memory killer и т. д.
Давайте разберемся, что разработчику может помочь, чтобы он мог спать спокойно после деплоя своего решения. Попробуем детально разобраться в природе утечек ресурсов, научимся находить их с помощью профилировщиков и построим систему защиты от самых распространённых паттернов утечек.
Что внутри
Разобьем на несколько частей, в 1-ой части:
Почему JSON и YAML мешают вам писать нормальные конфиги (и чем их заменить)
2025-11-10 в 14:15, admin, рубрики: config, configuration, devops, Go, json, kubernetes, yml, конфиг, конфигурация, конфигурированиеJSON, YAML, TOML, HCL - за последние годы человечество успело изобрести десяток языков для конфигурации.
Каждый обещал быть "простым", "удобным" и "читаемым человеком".
Но по факту - все они страдают от одних и тех же проблем: шумный синтаксис, хрупкие отступы, бесконечные кавычки и отсутствие элементарных возможностей вроде модульности и слияния конфигов.
Пора перестать с этим мириться и сделать конфигурации наконец человеческими.
🛑 Перестаньте
-
утомлять глаза, пытаясь разобраться в тонне бесполезных кавычек
-
утомлять глаза, пытаясь распознать в каком месте есть проблема с отступом
Как я уменьшил Docker-образ Go-приложения с 1.92 GB до 9 MB
2025-11-01 в 6:13, admin, рубрики: backend, devops, docker, docker desktop, dockerfile, Go, микросервисы, минимизация, оптимизацияВведение
Первый Docker-образ для моего Go-приложения весил 1.92 GB. Для микросервиса на 100 строк — абсурдно. Решил разобраться, куда именно уходит место и как добиться максимально лёгкого образа.
За несколько итераций оптимизации удалось уменьшить образ в 91 раз — до 21 MB production вариант. С дополнительным UPX-сжатием в 213 раз — до 9 MB.
В статье
-
Максимальная оптимизация Docker-образа для Go
-
Выбор базового образа и техник для каждого сценария
Создал простенький мониторинг микросервис
Функционал:
-
/healthЧитать полностью »
Выжимаем из Go скорость до последних наносекунд
2025-10-21 в 14:30, admin, рубрики: Go, ruvds_статьи, оптимизация, скорость
Введение
Как я с помощью LLM писал эмулятор ZX Spectrum
2025-10-14 в 9:03, admin, рубрики: Go, llm, zx spectrum, zxspectrum
Поймите указатели в Go меньше чем за 800 слов или вернём деньги
2025-10-13 в 11:46, admin, рубрики: Go, golang, указатели, указательНе нашел перевод этой статьи, решил сделать, ногами не бейте
Оригинал: Understand Go pointers in less than 800 words or your money back
Автор: Дэйв Чейни
Дата: 26 апреля 2017 г.
Проще говоря, указатель — это значение, которое указывает на адрес другого значения. Это определение из учебников, но если вы пришли из языка, который не позволяет работать с адресами переменных, эта фраза может показаться магической.
Давайте разберемся.
Что такое память?
Erlang-совместимые битовые строки в Go: создаём funbit
2025-10-08 в 10:14, admin, рубрики: bit-level, bitstring, erlang, Go, parser, protocolsTL;DR: Мы перенесли битовый синтаксис Erlang в Go, чтобы парсить бинарные протоколы без боли. Получилась библиотека funbit — декларативный парсер с поддержкой не выровненных по байтам данных.
Предыстория
В процессе разработки funterm — мультиязыкового REPL, объединяющего Python, Lua, JavaScript и Go — мы столкнулись с необходимостью эффективной работы с бинарными данными. Нужно было парсить сетевые протоколы, обрабатывать структурированные данные и работать с битовыми полями на уровне отдельных битов.
Что не так с ручным парсингом
Rust vs Go: честное сравнение для высоконагруженных сервисов
2025-10-07 в 13:34, admin, рубрики: backend, Go, golang, highload, Rust, архитектура, конкурентность, производительность, разработка, сравнение«Rust — это когда ты контролируешь каждый байт.
Go — это когда ты делаешь сервис, а не борешься с компилятором.»
Введение
Rust и Go часто оказываются по разные стороны инженерных холиваров.
Кто‑то называет Go «языком для продакшна», кто‑то утверждает, что Rust — «единственный способ спать спокойно после деплоя».
Я работал с обоими языками: писал микросервисы на Go, системы обработки событий и сетевые агенты на Rust.
В этом посте — не теоретическое сравнение, а практическое: где Rust реально оправдан, а где Go дает фору по скорости разработки и стабильности.
Производительность
Как GC останавливает весь мир, чтобы вынести мусор
2025-09-24 в 8:29, admin, рубрики: C#, Garbage collection, garbage collector, gc, Go, java, kotlin, scala, swiftКоротко о самом главном в сборке мусора.
⚠️ Важно: это только концептуальная иллюстрация. В реальных средах исполнения JVM, .NET, Go и т.д. все сложнее!
💡 Терминология:
🔹 GC
Garbage Collector, он же сборщик мусора, чистит память от неиспользуемых объектов.
