🤯 QA в 2026 — это уже не «нажми кнопку» Архитектура микросервисов, SQL, Kafka, логи, автотесты. Именно это работодатели хотят видеть сейчас — и слово «желательно» в вакансиях давно сменилось на «обязательно». ➡️ С чего начать без IT-бэкграунда Спойлер: из бэка переход почти не требует усилий 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
Библиотека Go-разработчика | Golang
Все самое полезное для Go-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/32d20779 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0 #WXSSA
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20🛠 Конкурентность без бойлерплейта Когда нужно запустить несколько горутин, дождаться всех и обработать первую ошибку, то руки обычно тянутся к sync.WaitGroup плюс канал для ошибок. Это легко сделать неправильно: пропустить ошибку, получить дедлок, написать двадцать строк там, где достаточно пяти. Давайте попробуем использовать errgroup. g.Go запускает горутину. g.Wait ждёт все и возвращает первую ненулевую ошибку. Если любая горутина вернула ошибку — производный ctx отменяется, остальные горути...
⭐️ Проверка интерфейсов на этапе компиляции В Go тип реализует интерфейс неявно, никаких implements не нужно. Это элегантно, но создаёт тихую ловушку: вы думаете, что тип реализует интерфейс, но из-за несовпадения сигнатуры метода — не реализует. Узнаёте об этом только в рантайме, когда присвоение падает. Лечится одной строкой, которая ничего не стоит в рантайме: var _ io.Reader = (MyReader)(nil) Что здесь происходит Объявляется переменная типа io.Reader, ей присваивается nil-указатель на MyRead...
📎 Анализатор и инъекции 802.11 на Go Gapcast — это инструмент для аудита WiFi-сетей: перехват пакетов, инъекции, Evil Twin с Captive Portal и оценка дистанции до точки доступа по RSSI. Написан на Go, лицензия GPL-2.0. Что умеет Сканирование 2.4 и 5 ГГц одновременно, запись в .pcap, восстановление данных из файла — в том числе от Wireshark. Deep Scan по одному BSSID проходит три фазы: определение канала, сбор пакетов, расчёт дистанции. Установка git clone https://github.com/ANDRVV/gapcast.git cd...
❗️ Kafka выстрелила в прод в 7 утра в январские праздники Это не гипотетический сценарий, а реальный случай. Консьюмер запустился на три минуты позже, чем нужно, и этого хватило, чтобы брокер удалил все сообщения. Проводки не прошли, данные пропали. Архитектор собрал 5 типичных ошибок при работе с Kafka, тех, что не проявляются сразу, а в самый неподходящий момент. ➡️ Читать статью 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
✏️ Уязвимость в Gogs при удалении релизов При удалении релиза Gogs вызывает git-команду примерно так: process.ExecDir(..., "git", "tag", "-d", rel.TagName) rel.TagName передаётся напрямую, без разделителя --. Если имя тега начинается с -, Git воспринимает его как флаг, а не как аргумент. Это классическая инъекция аргументов. Что делать Обновиться до Gogs 0.14.2. Уязвимость обнаружили и закрыли. ➡️ Источник 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoLive
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
👨💻 Markdown-CMS на Go без базы данных Markdown-CMS — это система управления контентом, где вместо базы данных и визуального редактора используются обычные .md файлы с текстом. Foundry это свежий проект как раз про такой подход. Пайплайн простой: конфиг → загрузка контента → граф сайта → маршруты → рендеринг → public/. Два графа в памяти: SiteGraph: документы, роуты, таксономии; и DependencyGraph для инкрементальных пересборок. При изменении файла пересобираются только затронутые страницы. Что...
💬 Топ-вакансий для Go-разработчиков за неделю Golang Developer, Middle+ — до 300 000 ₽, удаленно Go-разработчик (Мониторинг) — до 585 000 ₽, удаленно по Москве Бэкенд-разработчик (Storage) — до 500 000 ₽, в офисе/гибрид в Москве ➡️ Еще больше топовых вакансий — в нашем канале Go jobs 🐸 Библиотека Go-разработчика #GoWork
🛠 Go Fiber v3: как мигрировать с v2 Fiber v3 вышел в стабильный релиз. Если вы используете v2 в продакшене, вот что нужно знать перед миграцией и зачем она вообще нужна. Что поменялось Три изменения, которые влияют на код 1️⃣ fiber.Ctx теперь реализует context.Context В v2 приходилось вызывать c.UserContext(), чтобы передать контекст в стандартные библиотеки. В v3 fiber.Ctx удовлетворяет интерфейсу context.Context напрямую. // v2 ctx := c.UserContext() rows, err := db.QueryContext(ctx, "SELECT ...