Category : golang

golang
Больше 1 млн запросов в секунду на Go: уроки продакшена

Команда Go for Devs подготовила перевод статьи о том, как построить Heavy-Read API на Go, способный обрабатывать более 1 млн запросов в секунду. Автор делится продакшен-архитектурой распределённого In-Memory Cache, показывает, как убрать БД и Redis из критического пути чтения, и объясняет, за счёт каких оптимизаций удаётся добиться субмиллисекундных задержек. Практика, цифры и реальные уроки из продакшена. Сегодня я делюсь архитектурой распределённого In-Memory Cache, специально спроектированн…

  • вторник, 23 декабря 2025 г. в 00:00:13
golang
Как писать резюме в IT-сфере? Как даже хорошее резюме может терять отклики и что с этим делать?

Меня зовут Екатерина Рычкова, я CEO HR-агентства и рекрутёр с 15-летним опытом.Сегодня разбираю резюме кандидата из IT-индустрии с хорошим опытом, сильной технической базой и понятной целью: переход в Go-разработку.Самое приятное, что в IT-сфере оформление резюме — не самое ключевое. Главное, на что смотрит рекрутер:опыт работыязыки программированияфреймворки и базы данных, с которыми вы работаетеИтак, смотрим резюме.Первое, что бросается в глаза, это длительный и стабильный опыт работы с embed…

  • вторник, 23 декабря 2025 г. в 00:00:13
golang
Embedded SQL с группировкой запросов: элегантный подход к управлению SQL в Go

Хотелось бы сразу сделать небольшой дисклеймер. Это не супер-экспертная статья. Скажем так - это мой инсайд о том, как еще можно работать с SQL запросами в Go проекте. В этой статье я расскажу о том как удобно хранить запросы в embeded sql файлах. Решение о котором я буду писать - лишь один из инструментов в арсенале разработчика, а не универсальное решение призванное вылечить все болезни. Надеюсь тебе это будет полезно.При работе с базой данных в Go-приложениях я использовал несколько подходов…

  • понедельник, 22 декабря 2025 г. в 00:00:10
golang
Sing-Box Launcher теперь на macOS

Месяц назад я описывал wizard-подход к настройке sing-box без ручного JSON. Теперь это полноценный нативный macOS-клиент и Windows-клиент с TUN, системным прокси, menu bar, быстрым переключением узлов и решением бага Fyne через Objective-C.О чём была первая статьяВ прошлой публикации я разбирал две главные боли при работе с sing-box: ручное редактирование JSON и теги узлов, которые «плывут» после обновления подписки. Решением стал wizard — он собирает конфиг из проверенных блоков, а не редактир…

  • суббота, 20 декабря 2025 г. в 00:00:09
golang
Разбираем подводные камни, ошибки и лучшие практики при разработке Kubernetes-операторов

Kubernetes-операторы давно стали привычным инструментом автоматизации и управления сложными системами. Однако на практике их поведение далеко не такое предсказуемое, как в примерах из документации. Небольшие отклонения в логике цикла согласования, обработке ошибок или обновлении статуса быстро превращаются в зацикливание, дублирование ресурсов и прочие сюрпризы, которые трудно отладить. Новичкам полезно понимать, почему так происходит, а опытным разработчикам — помнить, какие принципы стоит дер…

  • пятница, 19 декабря 2025 г. в 00:00:09
golang
Один сервис — четыре стека: практический бенчмарк с SLO по p99 и Docker/JMeter

В этой статье представлено сравнение четырёх реализаций одного и того же сервиса поверх PostgreSQL:Spring MVC + JDBCSpring WebFlux + R2DBCKtor + JDBCGo + pgxВсе сервисы крутятся в Docker с одинаковыми ресурсными лимитами и прогоняются через один и тот же JMeter-план. Для каждого стека определяется максимальный RPS при соблюдении SLO по p99-латентности.Разберём подробно:Как устроен стенд (docker-compose, Postgres, Prometheus, Grafana, JMeter)Как реализованы сервисы и в чём различия моделей конку…

  • пятница, 19 декабря 2025 г. в 00:00:07
golang
Пишем свою in-memory базу на Go, ускоряем поиск отелей в десятки раз

Если вы когда-либо строили высоконагруженные системы поиска, то знаете, что в какой-то момент узким местом становится не код, а сама архитектура. Поиск доступных отелей — как раз тот случай: миллиарды «ночей», десятки тысяч RPS, постоянные обновления календарей, строгая консистентность и высокая цена любой ошибки. Старый стек на Python + Postgres + Redis долго тянул, но однажды стал «тормозить» настолько, что оптимизировать дальше было невозможно — SQL-запросы разрастались, реплики множились, l…

  • пятница, 19 декабря 2025 г. в 00:00:07
golang
Визуальный язык программирования в NebuLeet: эволюция и дизайн

Пару лет я в соло разрабатывал максимально нишевую игру "для программистов" (NebuLeet) на довольно нишевых технологиях (Go + ebitengine), и вот теперь, после релиза, я хочу рассказать про одну из интересных особенностей этой игры - визуальном программировании логики игровых юнитов.Визуальный язык в игре прошёл несколько итераций развития, от неявных аргументов команд через стек, до чего-то типа регистровой модели, где у ячеек памяти есть имена, а команды принимают аргументы явно.Вас ждё…

  • четверг, 18 декабря 2025 г. в 00:00:09
golang
1000 и один способ угробить программу из-за гонки данных в Go

Команда Go for Devs подготовила перевод статьи о самых коварных и трудноуловимых гонках данных в Go. Автор показывает на реальных примерах, как даже опытные разработчики легко попадают в ловушки конкурентности: от случайных захватов переменных в замыканиях до неправильного срока жизни мьютексов и скрытых гонок в стандартной библиотеке.Я пишу продакшн-приложения на Go уже несколько лет. В этом языке есть вещи, которые мне нравятся. Но есть и то, что мне не по душе: в Go слишком легко создать гон…

  • четверг, 18 декабря 2025 г. в 00:00:08