Библиотека Go-разработчика | Golang
23K subscribers
1.8K photos
39 videos
87 files
4.2K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Работать у нас: https://job.proglib.io/

Наши каналы: https://t.me/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🎧 104 выпуск подкаста Cup o' Go

Не пропустите новый эпизод подкаста Cup o' Go, где ведущие как всегда анализируют самые важные новости и обновления в мире Go.

Что обсудили на этот раз:

Уязвимость в пакете x/net: ошибка парсинга HTML, связанная с некорректной интерпретацией тегов с незакавыченными атрибутами, заканчивающимися символом слэша.

• «IngressNightmare»: критическая уязвимость в Ingress NGINX, позволяющая неаутентифицированное удаленное выполнение кода.

• Добавление команды go mod verify -tag

🖇 Слушать обсуждение новостей

🐸Библиотека Go разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔒 Go 1.24.2 и 1.23.8 — важные патчи безопасности

Выпущены свежие минорные версии Go, что поправили:

• Закрыта уязвимость в net/http (CVE-2025-22871): http принимал некорректные chunked-запросы, заканчивающиеся только \n вместо \r\n

• Фикс "out of memory" в компиляторе

• Улучшена работа с cgo и профилировщиками

🐸Библиотека Go разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
✏️ Готовы ли вы к собеседованию

Если вы работаете с языком Go и уверены в своих знаниях — самое время это проверить.

Это мини-экзамен перед собеседованием: синтаксис, тонкости работы с горутинами, ошибки, которые делают даже опытные разработчики.

➡️ Проверить свои знания

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🎲 Go-квест: разгадай кроссворд

Если вы осваиваете язык Go или просто хотите повторить базовые понятия — этот кроссворд для вас.

1. Как называется легковесный поток выполнения в Go, создаваемый с помощью ключевого слова go?

2. Какое ключевое слово в Go используется для отложенного выполнения функции до выхода из окружающей функции?

3. Какой механизм синхронизации используется в Go для блокировки доступа к разделяемым ресурсам?

4. Какой оператор в Go позволяет обрабатывать несколько каналов одновременно?

5. Как в Go называется структура данных, представляющая собой динамический массив?

6. Какой пакет в Go используется для управления временем жизни горутин и отмены операций?

💬 Пишите ответы под спойлер в комментарии 👇

🐸Библиотека Go разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
☕️ Дайджест недели: после первой чашки кофе

Коротко и по делу: собрали для вас новости из мира Go.

Тестирование с b.loop

Написано на Go: GitHub выпускает MCP-сервер для интеграции с API

Revive v1.8.0

Новый эпизод подкаста Cup o' Go

Минорные патчи безопасности Go

Поучаствуйте в нашей подборке ноутов

Проверьте свои знания Go

🐸Библиотека Go разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает затенение

Затенение в Go происходит, когда локальная переменная с тем же именем, что и переменная из более широкого диапазона видимости (например, из области функции или глобальной области), перекрывает эту переменную, таким образом скрывая её доступ в текущем контексте.

var x int = 10 // глобальная переменная

func main() {
x := 20 // локальная переменная, затеняющая глобальную
fmt.Println(x) // Выведет 20, потому что локальная переменная затеняет глобальную
}


🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
Что произойдёт, если вы используете goto для перехода из одной функции в другую

👻 — Это приведёт к ошибке компиляции, так как goto работает только внутри одной функции.
🌚 — Это возможно, но только если функции находятся в одном пакете.
⚡️ — Это приводит к стековому переполнению, так как переход между функциями дорогостоящий.
🎉goto разрешает переход между функциями, но лучше использовать обычные вызовы функций.

🐸Библиотека задач по Go
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии Golang - наш канал это сборник вакансий по GO.

Что в канале?
1. Только свежие вакансии.
2. Каждая вакансия имеет телеграм аккаунт HR или Tech специалиста. Сразу можете писать им вопросы и отправлять резюме
3. Подборка топовых вакансий за последние 7 дней

Подписывайтесь, ищите работу, а так же присылайте свои вакансии нам в канал: Вакансии Golang

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqxcHBQV
🖥 Метрики эффективности сотрудника

В каждой команде бывают специалисты, чья ценность не укладывается в привычные метрики продуктивности. Они редко в топе по количеству закрытых задач, но именно их вклад критически важен для общего результата.

Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.

Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.

🔗 Подробности в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Go-кэш за 5 минут

🔧 Установка
go get github.com/patrickmn/go-cache


🚀 Быстрый пример
c := cache.New(5*time.Minute, 10*time.Minute)
c.Set("foo", "bar", cache.DefaultExpiration)

val, found := c.Get("foo")
if found {
fmt.Println("Found:", val)
}

• 5m — TTL по умолчанию для всех ключей
• 10m — интервал очистки просроченных ключей
• можно указать cache.NoExpiration — чтобы хранить вечно

🛠 Полезные методы
// Установить с TTL
c.Set("key", "value", time.Minute)
// Получить значение
c.Get("key")
// Удалить ключ
c.Delete("key")
// Очистить всё
c.Flush()


💬 Какой либой для кэша пользуетесь вы? Делитесь в комментариях👇

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Гоферы!

Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый Go-разработчик.

➡️Поддержать канал: https://t.me/boost/goproglib
Please open Telegram to view this post
VIEW IN TELEGRAM
🤦‍♂️ Я забил на споры о микросервисах с архитекторами, и вот почему

С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.

Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно

➡️ Читать статью

💬 Как вы относитесь к микросервисам? Использовали ли вы их в своих проектах? Ждём ваши комментарии 👇

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Меньше команд — больше кода

lazygit — это удобный и понятный интерфейс для работы с Git прямо в терминале. Настоящая находка для тех, кто ценит скорость и наглядность.

Решение конфликтов, переключение веток, работа с stash, выполнение rebase или amend — всё это становится проще, потому что действия визуализированы.

➡️ Репозиторий ленивого гита

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 Чек-лист: как искать работу

Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:

Обновите резюме и профиль (и да, Go-модули на GitHub — тоже)

Покажите, что у вас не только есть опыт, но и Golang под капотом:
• актуальные технологии (Go 1.20+, gRPC, PostgreSQL, Redis, Kafka, Docker и пр.).
• внятные результаты («снизил время отклика API на 40%», а не «делал API»).
• ссылки на GitHub с чистыми, рабочими проектами (а не репо «test123» с одним файлом main.go).

Сформулируйте ключевые навыки и корректные поисковые запросы.

Рекрутеры — не экстрасенсы. Упростите им жизнь и напишите в резюме: Gin, Echo, Fiber, REST/gRPC, PostgreSQL, Redis, Kafka, RabbitMQ, CI/CD, Kubernetes.
Даже если вы фанат net/http — упомяните это тоже.

Следите за вакансиями регулярно, но без стресса

• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для трушных go-разработчиков.

Готовьтесь к собеседованиям заранее

• Освежите основы: goroutines, channels, context, interfaces, error handling.
• Разберитесь с нюансами работы garbage collector, конкурентного доступа и профилирования.
• Подготовьте истории про то, как вы спасали прод — но без «встал и всё заработало».

💬 Сколько в среднем ищете работу? Пару дней или пару месяцев? Пишите в комментарии👇

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🕸 Как работает протокол HTTP/2: основные принципы и преимущества в сравнении с HTTP/1.1

​HTTP/2 — это как переход с однополосной дороги HTTP/1.1 на скоростное шоссе: быстрее, эффективнее и без пробок.

Узнайте, как новые технологии ускоряют загрузку веб-страниц и улучшают работу приложений.

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей

Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.

🧐 Но что, если есть простая формула, способная:

• Мгновенно определить, насколько «разбросаны» ваши данные

• Значительно улучшить точность ваших ML-моделей

• Помочь обнаружить аномалии, которые вы раньше не замечали

В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.

Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?

Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/83c03e95
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Что посмотреть: tRPC на Go

Если вы работали с tRPC, то знаете, насколько удобно иметь типобезопасность от сервера до клиента. Но у tRPC есть ограничение — и сервер, и клиент должны быть на TypeScript. Не всем это подходит.

В новом видео представлена библиотека RERPC, разработанная для Go, которая решает эту проблему. Она позволяет создавать типобезопасные RPC-интерфейсы между языками.

Основные возможности:

• Автоматическая генерация клиента на основе изменений в Go-сервере.

• Поддержка всех базовых Go-типов, включая вложенные структуры.

• Обработка Option и Nullable значений через вспомогательные типы (в духе Rust).

• Встроенная валидация и сериализация JSON, которую можно использовать отдельно от RPC.

• Интеграция через CLI, который отслеживает изменения и автоматически обновляет клиент.

Сейчас доступны TypeScript, Go, Rust, Kotlin, Swift, Dart.
💬 Какие языки, по вашему мнению, стоило бы поддержать в будущем?

➡️ Смотреть видео

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM