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

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

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

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🔒 Обновления Go-безопасности

Команда Go объявила о выпуске минорных версий Go 1.25.1 и Go 1.24.7. В этих релизах устранена одна уязвимость, связанная с пакетом net/http: механизм CrossOriginProtection.AddInsecureBypassPattern обладал слишком широким допуском, из-за чего запросы без завершающего слэша могли некорректно обходить защиту.

➡️ Сообщение от разработчиков

🐸Библиотека Go-разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🤔2
☀️ Лето — время для отдыха или время для работы

Летний сезон — это время, когда хочется забыть обо всём и просто расслабиться. Но с другой стороны, может быть, именно летом стоит больше работать и развивать свои пет-проекты.

Без перезагрузки не будет долгосрочной эффективности. Лето — отличное время, чтобы восстановить силы и зарядиться энергией на будущие проекты.

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

Работать не означает только трудиться. Можно провести время, развивая собственные идеи и обучаясь новому, что даст возможность сделать перерыв и одновременно развиваться.

💬 Что вы делали прошедшим летом? Делитесь в комментариях 👇

🐸Библиотека Go-разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2
😎 Сколько баллов набрали вы?

Голосуйте, какой у вас уровень разработчика:

😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)

Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.

👉 Научим, как быстро прокачаться от стажера до сеньора
🤩10👍41🎉1
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)


⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты
— Прокачка от новичка до Senior Data Scientist
— Босс-файты с реальными задачами из индустрии
— Доступ к гильдии единомышленников

📎 Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес
🌚4
🏦 Строим банк с нуля

На этапе проектирования приложения критично определить взаимодействие его компонентов.
Нотация ArchiMate обеспечивает формальное описание связей между слоями приложений и технологий.

Этот метод упрощает поддержание консистентности архитектуры, а также позволяет безболезненно масштабировать и оптимизировать систему.

➡️ Подробнее в статье

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍1😢1👾1
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
😁72
🍁 Осенний дайджест

Пришло время собрать интересные материалы первой недели осени.

Как ускорить тесты и сократить время их выполнения

В новом посте команда Go делится методами оптимизации времени выполнения тестов. Рассматриваются техники параллельного запуска, уменьшения объёма тестовых данных и правильного использования моков.

Появился новый yamlgoyaml для Go

Сообщество Go объявило о форке популярной библиотеки GoYaml, теперь под названием yamlgoyaml. Форк направлен на улучшение совместимости с современными версиями Go, исправление багов и оптимизацию производительности.

Методы по умолчанию в Go

Cup o’ Go про актуальное

Обновления Go-безопасности

Строим банк с нуля

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

👉 Забронируй место сейчас
😁2
😎 Топ-вакансий для Go-разработчиков за неделю

Senior Backend Engineer — от 600 000 ₽, удаленно (Москва)

Senior Go / Kubernetes Engineer — до 7 000 $, удаленка в Москве

Go Developer — до 400 000 ₽, удаленно (Москва)

Senior Golang Developer — от 400 000 ₽, удаленка в Москве

Golang-разработчик — от 3500 до 4000 $, удаленно (Москва)

Бустер — удалённо (не только Москва)

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🗑 Как действительно удалять чувствительные данные в системах с кэшем. Часть 1

Данные проходят через множество слоёв: браузер → CDN → балансировщик → брокер сообщений → сервисы → распределённый кэш → полнотекстовый поиск → БД (и её логи/кэши).

Чтобы «стереть» их, нужно инвалидировать и подчистить каждый слой.

1. Клиент: не кэшировать чувствительное

Отдавайте такие ответы с Cache-Control: no-store и без ETag/Last-Modified.
// middleware: запрет кэширования чувствительных ответов
func noStore(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Cache-Control", "no-store")
w.Header().Del("ETag")
w.Header().Del("Last-Modified")
next.ServeHTTP(w, r)
})
}


2. CDN: точечная инвалидация и короткие TTL

Для публичных данных — ETag/short TTL; для приватных — вообще не пускать в CDN (поддомен без CDN / приватные заголовки).

Паттерн: после удаления на сервере — отправить сигнал на инвалидацию в CDN (CloudFront/Fastly) из вашего Go-сервиса.
// псевдокод: инвалидация пути в CDN после удаления пользователя
func purgeCDN(userID string) error {
// вызов SDK/HTTP API CDN-провайдера
reqBody := strings.NewReader(`{"paths":["/users/` + userID + `"],"type":"invalidate"}`)
req, _ := http.NewRequest("POST", "https://cdn.example/api/invalidate", reqBody)
req.Header.Set("Authorization", "Bearer "+os.Getenv("CDN_TOKEN"))
_, err := http.DefaultClient.Do(req)
return err
}


3. Балансировщик: purge ключей

Если используете NGINX/Varnish как кэш перед сервисами — включите адресуемый cache key (например, по X-User-ID) и выполняйте purge на удаление
# пример идеи: привязка кэш-ключа к пользователю
proxy_cache_key "$scheme$request_method$host$request_uri$user_id";


4. Messaging: retention и перезапись по ключу

Персональные данные лучше вообще не класть в сообщения. Если необходимо:

• Выносите PII в secure-storage и передавайте только ссылку/ID.

• Для Kafka — короткий retention.ms и/или compact topics (перезапись по ключу).

// kafka-go: запись "затирающего" сообщения (compacted topic)
msg := kafka.Message{
Key: []byte("user:123"),
Value: []byte("{}"), // пустые поля вместо PII
Headers: []kafka.Header{{Key: "event", Value: []byte("user.redacted")}},
}
err := writer.WriteMessages(ctx, msg)


5. Сервисы: согласованная инвалидация кэша

Правило: сначала удаляем/редактируем источник, затем инвалидируем все кэши, которые могут содержать копии.
// cache-aside с Redis: сначала БД, затем кэш
func DeleteUser(ctx context.Context, db *sql.DB, rdb *redis.Client, id int64) error {
tx, err := db.BeginTx(ctx, nil); if err != nil { return err }
if _, err := tx.ExecContext(ctx, "DELETE FROM users WHERE id=$1", id); err != nil {
tx.Rollback(); return err
}
if err := tx.Commit(); err != nil { return err }

// Инвалидация всех связанных ключей
keys := []string{
fmt.Sprintf("user:%d", id),
fmt.Sprintf("user:%d:profile", id),
fmt.Sprintf("user:%d:permissions", id),
}
if err := rdb.Del(ctx, keys...).Err(); err != nil { return err }

return nil
}


🐸Библиотека Go-разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
⭐️ 5 трендов IT-найма 2025

Грейды уже не гарантируют рост зарплаты, джоб-борды теряют эффективность, а AI вмешался в процесс собеседований так, что теперь компании делятся на лагеря — одни разрешают использовать ChatGPT, другие устраивают собесы с ручкой и листочком.

В карточках — пять главных трендов рынка найма: от умирания грейдинга до смещения фокуса на удержание сотрудников.

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

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