ВведениеДобрый день, всем читающим данную статью. При анализе артефактов с Linux систем journal являются источником огромного количества полезной информации. Из журналов можно достать:название машины;идентификатор события;тип события;критичность события;сообщение;объект породивший событие;и многое другое.Существует множество утилит которые позволяют парсить журналы:встроенный во многие дистрибутивы linux journalctl;кроссплатформенный go-journalctl от Velocidex;библиотека go-systemd;и т.д.Однако…
TL;DRПереписал Composer на Go, получил 3-5x ускорение благодаря параллельной загрузке пакетов и отсутствию PHP runtime overhead. Проект полностью совместим с экосистемой Composer/Packagist (почти, об этом будет подробнее внизу). Почему Composer медленный?Каждый PHP‑разработчик знаком с этим чувством: запускаешь composer install и идёшь заваривать чай. Для небольшого проекта — минута, для Symfony/Laravel — несколько минут. В CI/CD пайплайне это превращается в существенные затраты времени.Основны…
ВступлениеВ этой статье я хочу рассказать про Axiom — тестовый фреймворк (а точнее, тестовый runtime-движок) для Go. Но прежде чем говорить о решении, важно четко обозначить саму проблему, которую он закрывает.Go по своей философии — язык минимализма. Он осознанно избегает сложных абстракций, магии, навороченных DSL и бесконечных расширений. Пакет testing — идеальное отражение этой философии: маленький, прямолинейный, прозрачный. Это прекрасно для простых юнит-тестов: никаких фреймворков, никак…
Команда Go for Devs подготовила перевод статьи о том, как построить Heavy-Read API на Go, способный обрабатывать более 1 млн запросов в секунду. Автор делится продакшен-архитектурой распределённого In-Memory Cache, показывает, как убрать БД и Redis из критического пути чтения, и объясняет, за счёт каких оптимизаций удаётся добиться субмиллисекундных задержек. Практика, цифры и реальные уроки из продакшена. Сегодня я делюсь архитектурой распределённого In-Memory Cache, специально спроектированн…
Меня зовут Екатерина Рычкова, я CEO HR-агентства и рекрутёр с 15-летним опытом.Сегодня разбираю резюме кандидата из IT-индустрии с хорошим опытом, сильной технической базой и понятной целью: переход в Go-разработку.Самое приятное, что в IT-сфере оформление резюме — не самое ключевое. Главное, на что смотрит рекрутер:опыт работыязыки программированияфреймворки и базы данных, с которыми вы работаетеИтак, смотрим резюме.Первое, что бросается в глаза, это длительный и стабильный опыт работы с embed…
Хотелось бы сразу сделать небольшой дисклеймер. Это не супер-экспертная статья. Скажем так - это мой инсайд о том, как еще можно работать с SQL запросами в Go проекте. В этой статье я расскажу о том как удобно хранить запросы в embeded sql файлах. Решение о котором я буду писать - лишь один из инструментов в арсенале разработчика, а не универсальное решение призванное вылечить все болезни. Надеюсь тебе это будет полезно.При работе с базой данных в Go-приложениях я использовал несколько подходов…
Месяц назад я описывал wizard-подход к настройке sing-box без ручного JSON. Теперь это полноценный нативный macOS-клиент и Windows-клиент с TUN, системным прокси, menu bar, быстрым переключением узлов и решением бага Fyne через Objective-C.О чём была первая статьяВ прошлой публикации я разбирал две главные боли при работе с sing-box: ручное редактирование JSON и теги узлов, которые «плывут» после обновления подписки. Решением стал wizard — он собирает конфиг из проверенных блоков, а не редактир…
Kubernetes-операторы давно стали привычным инструментом автоматизации и управления сложными системами. Однако на практике их поведение далеко не такое предсказуемое, как в примерах из документации. Небольшие отклонения в логике цикла согласования, обработке ошибок или обновлении статуса быстро превращаются в зацикливание, дублирование ресурсов и прочие сюрпризы, которые трудно отладить. Новичкам полезно понимать, почему так происходит, а опытным разработчикам — помнить, какие принципы стоит дер…
В этой статье представлено сравнение четырёх реализаций одного и того же сервиса поверх PostgreSQL:Spring MVC + JDBCSpring WebFlux + R2DBCKtor + JDBCGo + pgxВсе сервисы крутятся в Docker с одинаковыми ресурсными лимитами и прогоняются через один и тот же JMeter-план. Для каждого стека определяется максимальный RPS при соблюдении SLO по p99-латентности.Разберём подробно:Как устроен стенд (docker-compose, Postgres, Prometheus, Grafana, JMeter)Как реализованы сервисы и в чём различия моделей конку…