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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🔒 Как защитить API: 6 ключевых аспектов безопасности

API — главный мост между сервисами, но и уязвимое место в безопасности. Ошибки здесь могут дорого стоить.

Что нужно для безопасного API:

1. Авторизация и аутентификация пользователей

Надежная проверка пользователя и контроль доступа — в основе защиты от несанкционированного использования API.

Современные методы, такие как OAuth 2.0 и JWT, позволяют точно идентифицировать клиентов и разграничивать их права, снижая риск компрометации.

2. Использовать HTTPS

HTTPS шифрует трафик между клиентом и сервером, предотвращая перехват данных и их изменение в процессе передачи.

Это базовые аспекты для минимальной безопасности вашего API. В статье подробно раскрыли остальные пункты, следуя которым разработка не будет убыточной из-за дыр в безопасности.

➡️ Остальные способы ищите в статье

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
На чьей стороне вы

🔥 — snake_case
❤️ — CamelCase

🐸Библиотека Go-разработчика #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
🔒 Обмен данными безопасно

JSON Web Tokens (JWT) — это открытый стандарт (RFC 7519), позволяющий безопасно передавать информацию между сторонами в виде JSON-объекта.

JWT состоит из трёх частей:

1. Заголовок: содержит информацию о типе токена и алгоритме подписи (например, HMAC SHA256).

2. Payload: содержит данные, которые передаются. Это могут быть идентификаторы пользователя, роли, права доступа и т.д

3. Подпись: создаётся путём кодирования header и payload, а затем подписи их с использованием секрета или закрытого ключа.

Как использовать JWT в Go

1️⃣ Установка необходимых библиотек

Для работы с JWT в Go используем библиотеку:
go get github.com/golang-jwt/jwt/v4


2️⃣ Генерация JWT

Пример генерации JWT токена:
package main

import (
"fmt"
"time"

"github.com/golang-jwt/jwt/v4"
)

var mySigningKey = []byte("your-256-bit-secret")

func GenerateJWT(userID string) (string, error) {
claims := &jwt.RegisteredClaims{
Issuer: "your-app",
Subject: userID,
ExpiresAt: jwt.NewNumericDate(time.Now().Add(72 * time.Hour)),
}

token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
return token.SignedString(mySigningKey)
}

func main() {
token, err := GenerateJWT("12345")
if err != nil {
fmt.Println("Error generating token:", err)
return
}
fmt.Println("Generated JWT:", token)
}


3️⃣ Проверка JWT

Ниже готовый код для проверки токена:
func VerifyJWT(tokenString string) (*jwt.RegisteredClaims, error) {
token, err := jwt.ParseWithClaims(tokenString, &jwt.RegisteredClaims{}, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
}
return mySigningKey, nil
})

if err != nil {
return nil, err
}

if claims, ok := token.Claims.(*jwt.RegisteredClaims); ok && token.Valid {
return claims, nil
}
return nil, fmt.Errorf("invalid token")
}


JWT можно использовать для:

• Аутентификации — после успешного входа пользователя сервер генерирует JWT, который клиент использует для доступа к защищённым ресурсам.

• Управления сессиями — хранение информации о состоянии пользователя без необходимости поддерживать серверные сессии.

• SSO — использование единого токена для доступа к нескольким приложениям.

📎 Оригинальная статья

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Revive v1.10.0: Улучшения и исправления

В новой версии линтера Revive представлено несколько значимых улучшений и исправлений.

🆕 Основные изменения

• Обновлена конфигурация для интеграции с golangci-lint v2.

• Правило var-naming теперь проверяет каждое имя пакета только один раз.

• Внесены изменения, направленные на удаление регулярных выражений из исходного кода.

• Исправлена ошибка, приводившая к ложным срабатываниям правила get-return для HTTP-обработчиков, что повышает точность анализа кода

📎 Полный changelog релиза

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 AI-агенты — настоящее, о котором все говорят

На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи!

На обучении вы соберете полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Разберете реальные кейсы и научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

Старт 5 июля, а при оплате до 1 июня действует дополнительная скидка и бонус — эксклюзивный лонгрид по API и ML от Proglib.

Начните осваивать тему уже сейчас 👉 https://clc.to/Cttu7A
Библиотека Go-разработчика | Golang pinned «👾 AI-агенты — настоящее, о котором все говорят На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉 Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи! На обучении вы соберете полноценные…»
👔 Роль крупных компаний в развитии IT-индустрии

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

• Часто за красивыми презентациями и маркетингом скрывается консерватизм. Новые идеи не всегда приживаются, если они угрожают прибыльности или текущим бизнес-моделям.

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

• Монополизация рынков и контроль над ключевыми сегментами IT создают барьеры для молодых стартапов и независимых разработчиков.

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

💬 Кто видит в крупных компаниях источник прогресса, а кто — фактор стагнации? Ждём ваши мысли в комментариях 👇

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Быстро узнать тип переменной

Inline Type Info — это встроенная возможность в GoLand (и некоторых JetBrains IDE), которая показывает тип переменной или выражения прямо в коде, над строкой или рядом с ней

Пример:
data := fetchUserData() // 👈 IDE покажет: data → UserData

for _, item := range data.Items {
fmt.Println(item.Name) // 👈 item → UserItem
}

Рядом с data и item будет ненавязчиво показан их тип, даже если они выведены через «:=»

Как включить Inline Type Info в GoLand

1. Открыть настройки и перейти в раздел
Editor → Inlay Hints → Go → Types


2. Проставить галочки

☑️ Show for local variables

☑️ Show for range variables

☑️ Show for function result types

В VS Code с расширением Go by Google также есть похожая настройка:
"gopls": { "ui.inlayHints": true } в settings.json. Показываются типы, параметры, возвращаемые значения.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Cup O’ Go эпизод №112

Ведущие снова собрались, чтобы обсудить самые свежие новости и ключевые тренды из мира Go разработки.

В центре внимания:

• Обновлённый дефолт для GOMAXPROCS с учётом лимитов CPU, который улучшит управление ресурсами;

• Свежие подходы к работе с большими языковыми моделями (LLM) на Go, представленные Rory Malcolm;

• Релиз версии 9.0.0 клиента go-elasticsearch от Elastic с новыми возможностями;

• Инновационный Green Tea Garbage Collector, оптимизирующий сборку мусора;

• И другие новости, включая обзор с Google I/O и обновления популярных библиотек.

🎧 Слушать эпизод

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Последние 2 дня скидки на курс «AI-агенты для DS-специалистов»

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

Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.

🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib

💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP

Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».

👉 Успейте до 1 июня: https://clc.to/Cttu7A
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Что на самом деле происходит с увольнениями в ИТ

Каждый день в чатах разработчиков появляются сообщения «ищу работу», «команду сократили», «проект закрыли». Но никто не говорит о причинах и масштабах катастрофы. Мы запустили большое исследование, чтобы раскрыть правду!

🎯 Что мы выясним:
→ Реальные причины увольнений
→ Сколько времени нужно на поиск работы
→ Самые безумные истории смены работы

Понимая реальную ситуацию, мы сможем принимать взвешенные решения о карьере и не попасться на удочку HR-сказок.

👉 Пройдите опрос за 3 минуты и помогите всему сообществу: https://clc.to/yJ5krg
📰 Дайджест недели

Что прошло уже не вернуть, но стоит ознакомиться с нашей подборкой прошедшей недели.

Монолит: хороший, плохой и уродливый

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

Рассматриваются их особенности, преимущества и недостатки, а также влияние на поддержку и развитие систем.

Нативная поддержка FIPS 140-3 без сторонних библиотек

Go 1.24 представил встроенную поддержку FIPS 140-3, устраняя необходимость в сторонних криптобиблиотеках. Это упрощает соответствие требованиям безопасности для государственных и регулируемых отраслей.

Как защитить API: 6 ключевых аспектов безопасности

Revive v1.10.0

Cup O’ Go эпизод №112

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🍴 Топ-вакансий для Go-разработчиков за неделю

Senior Developer BE Golang — от 300 000 ₽, Гибрид (Москва)

GoLang-программист — Гибрид/Офис (Волгоград)

Разработчик в S3 — от 300 000, Удаленно (Москва/Санкт-Петербург/Новосибирск)

Software Engineer (Golang) — от 3 650 €, Удаленно (Испания, Сербия, Кипр — помощь с переездом)

Senior Go developer — Удаленно (Москва).

Бустер — Удалёнка по всей планете Земля.

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM