Зачем наступать на грабли, если можно обойти их? В карточках типичные ошибки, которые совершают начинающие программисты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Go славится своей простотой, скоростью и лаконичностью. Многие разработчики считают, что «чистый net/http — это и есть фреймворк». Но всё больше проектов строятся на готовых решениях: Gin, Fiber, Echo.
Так стоит ли вообще использовать фреймворк в Go — или лучше идти по пути минимализма?
🔧 Когда стоит выбрать фреймворк:
• Нужно быстро MVP. Меньше кода — больше результата. Тогда Gin или Fiber экономят время.
• Команда новичков в Go. Фреймворки помогают с организацией кода, предлагают готовые паттерны.
• Проект типовой: REST API, простая маршрутизация, CRUD. Нет смысла писать всё руками.
• Не хочется собирать инфраструктуру самому. Логгеры, middleware, CORS — всё уже есть.
⚙️ Когда лучше писать на «голом» net/http:
• Долгосрочный проект. Чем меньше зависимостей — тем проще поддерживать.
• Нужен полный контроль. Нет «магии», всё прозрачно и предсказуемо.
• Следуете философии Go. Чем проще и очевиднее — тем лучше.
• Хочется писать идиоматично. Стандартная библиотека Go — это уже почти идеал.
💬 Что думаете вы? Go хорош и без обёрток или фреймворки наше всё? Делитесь рассуждениями в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Дайджест недели
Краткий взгляд на темы недели.
— Google рассказали о ключевых обновлениях Go
Среди главных обновлений — удобные итераторы для упрощения циклов, расширенная поддержка WebAssembly и встроенная постквантовая криптография для повышения безопасности.
— Теперь можно общаться с репозиториями через AI
GitHub представил собственный сервер Model Context Protocol (MCP), интегрированный с GitHub Copilot.
Это открывает новые возможности для автоматизации рабочих процессов, анализа данных и создания AI-приложений, взаимодействующих с репозиториями.
— Новый выпуск Cup o' Go
— Команда Go рассказала о выявленных уязвимостях в криптобиблиотеке
Обновления:
— stoolap 0.0.6
Устранена серьёзная ошибка потери данных в режиме хранения в памяти.
— tint v1.1.0
Добавлена функция, позволяющая выводить цветные атрибуты без использования ANSI-кодов.
🐸 Библиотека Go разработчика #свежак
Краткий взгляд на темы недели.
— Google рассказали о ключевых обновлениях Go
Среди главных обновлений — удобные итераторы для упрощения циклов, расширенная поддержка WebAssembly и встроенная постквантовая криптография для повышения безопасности.
— Теперь можно общаться с репозиториями через AI
GitHub представил собственный сервер Model Context Protocol (MCP), интегрированный с GitHub Copilot.
Это открывает новые возможности для автоматизации рабочих процессов, анализа данных и создания AI-приложений, взаимодействующих с репозиториями.
— Новый выпуск Cup o' Go
— Команда Go рассказала о выявленных уязвимостях в криптобиблиотеке
Обновления:
— stoolap 0.0.6
Устранена серьёзная ошибка потери данных в режиме хранения в памяти.
— tint v1.1.0
Добавлена функция, позволяющая выводить цветные атрибуты без использования ANSI-кодов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Go | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Go | тесты, код, задания
SDET-инженер (Test Impact Analysis) — от 285 000 ₽, Удаленно (Москва)
Middle Backend разработчик (Python + Golang) — от 230 000 ₽, Офис (Москва)
Golang-разработчик (Middle) — от 300 000 ₽, Удаленно (Москва)
Tech Lead Golang — от 5 000 $, Удаленно
Разработчик GO — Удаленно (Москва)
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали для вас мероприятия для нетворкинга, обмена опытом и профессионального роста.
Масштабная конференция по управлению знаниями в IT состоится 2 июня в Москве. Практики документирования, онбординга, менторинга и развития внутренних сообществ от специалистов топовых компаний.
4 июня в Москве состоится GolangConf 2025 — профессиональная конференция для Go-разработчиков и их руководителей.
26–27 июня в Санкт-Петербурге пройдет Saint TeamLead Conf — мероприятие для тимлидов, руководителей команд и технических менеджеров, стремящихся развивать лидерские навыки и обмениваться опытом управления командами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Гибрид SQL-конструктора и генератора кода
Bob — это набор инструментов и пакетов для языка Go, предназначенный для работы с SQL-базами данных. Он сочетает в себе возможности построения SQL-запросов, генерации кода и ORM-функциональности.
Что его выделяет, по сравнению с другими
— Bob способен генерировать Go-код для SQL-запросов, включая SELECT, INSERT, UPDATE и DELETE
— Инструмент поддерживает PostgreSQL, MySQL/MariaDB и SQLite
— Bob можно постепенно внедрять в существующие проекты, начиная с использования raw SQL-запросов и постепенно переходя к полностью типизированным моделям и фабрикам.
— Bob придерживается принципов корректности, удобства без «магии» и совместимости с другими инструментами и стандартной библиотекой Go
Пример использования:
Возможности по генерации кода и поддержка разных СУБД делает Bob непростым соперником для GORM и sqlc.
📎 Репозиторий проекта
🐸 Библиотека Go-разработчика #буст
Bob — это набор инструментов и пакетов для языка Go, предназначенный для работы с SQL-базами данных. Он сочетает в себе возможности построения SQL-запросов, генерации кода и ORM-функциональности.
Что его выделяет, по сравнению с другими
— Bob способен генерировать Go-код для SQL-запросов, включая SELECT, INSERT, UPDATE и DELETE
— Инструмент поддерживает PostgreSQL, MySQL/MariaDB и SQLite
— Bob можно постепенно внедрять в существующие проекты, начиная с использования raw SQL-запросов и постепенно переходя к полностью типизированным моделям и фабрикам.
— Bob придерживается принципов корректности, удобства без «магии» и совместимости с другими инструментами и стандартной библиотекой Go
Пример использования:
// Пример генерации SELECT-запроса
query := bob.Select("id", "name").From("users").Where("active = ?", true)
rows, err := db.Query(query.String(), query.Args()...)
Возможности по генерации кода и поддержка разных СУБД делает Bob непростым соперником для GORM и sqlc.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 Почему на собеседованиях в топовые компании проваливаются даже опытные разработчики
Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.
Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».
Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».
🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей
После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.
👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.
Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».
Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».
🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей
После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.
👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
API — главный мост между сервисами, но и уязвимое место в безопасности. Ошибки здесь могут дорого стоить.
Что нужно для безопасного API:
1. Авторизация и аутентификация пользователей
Надежная проверка пользователя и контроль доступа — в основе защиты от несанкционированного использования API.
Современные методы, такие как OAuth 2.0 и JWT, позволяют точно идентифицировать клиентов и разграничивать их права, снижая риск компрометации.
2. Использовать HTTPS
HTTPS шифрует трафик между клиентом и сервером, предотвращая перехват данных и их изменение в процессе передачи.
Это базовые аспекты для минимальной безопасности вашего API. В статье подробно раскрыли остальные пункты, следуя которым разработка не будет убыточной из-за дыр в безопасности.
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
Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.
Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:
— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы
Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.
⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
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 используем библиотеку:
2️⃣ Генерация JWT
Пример генерации JWT токена:
3️⃣ Проверка JWT
Ниже готовый код для проверки токена:
JWT можно использовать для:
• Аутентификации — после успешного входа пользователя сервер генерирует JWT, который клиент использует для доступа к защищённым ресурсам.
• Управления сессиями — хранение информации о состоянии пользователя без необходимости поддерживать серверные сессии.
• SSO — использование единого токена для доступа к нескольким приложениям.
📎 Оригинальная статья
🐸 Библиотека Go-разработчика #буст
JSON Web Tokens (JWT) — это открытый стандарт (RFC 7519), позволяющий безопасно передавать информацию между сторонами в виде JSON-объекта.
JWT состоит из трёх частей:
1. Заголовок: содержит информацию о типе токена и алгоритме подписи (например, HMAC SHA256).
2. Payload: содержит данные, которые передаются. Это могут быть идентификаторы пользователя, роли, права доступа и т.д
3. Подпись: создаётся путём кодирования header и payload, а затем подписи их с использованием секрета или закрытого ключа.
Как использовать JWT в Go
Для работы с JWT в Go используем библиотеку:
go get github.com/golang-jwt/jwt/v4
Пример генерации 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)
}
Ниже готовый код для проверки токена:
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 — использование единого токена для доступа к нескольким приложениям.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Revive v1.10.0: Улучшения и исправления
В новой версии линтера Revive представлено несколько значимых улучшений и исправлений.
🆕 Основные изменения
• Обновлена конфигурация для интеграции с golangci-lint v2.
• Правило
• Внесены изменения, направленные на удаление регулярных выражений из исходного кода.
• Исправлена ошибка, приводившая к ложным срабатываниям правила
📎 Полный changelog релиза
🐸 Библиотека Go-разработчика #свежак
В новой версии линтера Revive представлено несколько значимых улучшений и исправлений.
🆕 Основные изменения
• Обновлена конфигурация для интеграции с golangci-lint v2.
• Правило
var-naming
теперь проверяет каждое имя пакета только один раз.• Внесены изменения, направленные на удаление регулярных выражений из исходного кода.
• Исправлена ошибка, приводившая к ложным срабатываниям правила
get-return
для HTTP-обработчиков, что повышает точность анализа кода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
На днях мы анонсировали наш новый курс 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
proglib.academy
Курс|AI-агенты для DS-специалистов
На курсе ты разберёшься, как работают AI-агенты и как их применять в работе — от текстовых помощников до систем, помогающих принимать решения. Разберем архитектуру агентов, связку с внешними API, пайплайны действий и популярные библиотеки. Курс включает реальные…