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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
⭐️ Проектируем как CTO

Сегодня составили для вас промпт, с которым можно самостоятельно спроектировать проект. От вас требуется только тематика проекта и основные функции, а остальное сделает нейросеть.

Промпт:
Проектируй детальную архитектуру проекта «ТЕМА ПРОЕКТА» с учётом следующих функций: [СПИСОК ФУНКЦИЙ]. Опиши ключевые модули, их взаимодействия (с использованием схем или диаграмм, если возможно), технологии для каждого компонента, а также обоснование выбора архитектурного стиля. Особое внимание удели масштабируемости, обеспечению безопасности и возможным ограничениям. Базовый язык программирования – Go, остальные технологии и инструменты выбирай самостоятельно, аргументируя выбор. Структурируй ответ по разделам: 1) Ключевые модули; 2) Взаимодействие модулей; 3) Используемые технологии; 4) Обоснование архитектурного стиля; 5) Масштабируемость и безопасность; 6) Ограничения и риски.


🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚11👍6😢4😁3🤩1
🫣 Боитесь математики в ML?

Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?

У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.

Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.

Регистрируйтесь, пока есть свободные места 😉
2
This media is not supported in your browser
VIEW IN TELEGRAM
💃 Как взять задачи посерьёзнее

Почему одним достаются крутые фичи, а вы — снова на багфиксе. Именно с такой историей пришёл к нам подписчик:
Работаю в команде больше года. Почти все ключевые и интересные задачи уходят к сеньорам. Мне достаются мелкие доработки, баги и то, что «надо кому-то сделать». Сначала думал, что это временно. Что делать, чтобы перейти на более серьёзный уровень и не застрять в рутине?


Если вы молча делаете своё и не выходите за рамки текущих задач, команду устраивает, что вы «надёжный исполнитель».

Хотите большего — начните показывать больше: идеи, инициативу, участие в обсуждениях, собственные предложения.

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

Если вы хотите получить серьёзную задачу — приходите подготовленным: изучите фичу, продумайте архитектуру, обозначьте риски. Это сигнал: вам можно доверять.

💬 Что вы делали для того, чтобы взять задачку покруче? Делитесь опытом в комментариях 👇

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.

Выберите курс, который поможет сделать следующий шаг ⬇️

🚀 Для тех, кто начинает путь в IT:

Основы IT для непрограммистов
Программирование на Python (обновлённый)
Frontend-разработчик с нуля: HTML, CSS, JavaScript

🧠 Для будущих и настоящих Data Scientist'ов:

ML для старта в Data Science (начинается в сентябре)
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (скоро второй поток)

🛠️ Для опытных разработчиков, готовых к росту:

Алгоритмы и структуры данных
Архитектуры и шаблоны проектирования

Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
👍1
⭐️ Третий кандидат на релиз Go 1.25

Go‑команда представила Go 1.25 RC3. Посмотрим что там внутри.

Два важных фикс-патча, связанных с безопасностью:

• Функция LookPath могла возвращать неожиданные пути, если переменная PATH содержит исполняемые файлы вместо директорий и строчки "", "." или ".." передаются в LookPath.

• При отмене запроса Rows.Scan в случае параллельных запросов было возможна гонка — Scan может вернуть данные другого запроса или ошибку.

Как установить и попробовать:
go install golang.org/dl/go1.25rc3@latest  
go1.25rc3 download


➡️ Анонс от разрабов

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2
💰 Сколько ты стоишь как разработчик

В переговорах о зарплате нет ничего хуже, чем назвать цифру «с потолка» и потом узнать, что рынок готов был платить больше.

Чтобы не гадать, а опираться на факты, есть три проверенных подхода. В статье — пошагово о каждом методе, с конкретными источниками и советами.

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

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Зоопарк моделей в ML: с чего начать?

Открываешь статью по машинному обучению — и в тебя летят слова: трансформеры, бустинги, SVM, регрессии.

Кажется, придётся учить всё это, иначе в ML не пустят.

Хорошая новость: 90% задач можно закрыть 2–3 классическими методами. Разберёшь их — уже сможешь собирать работающие проекты. А хайповые названия подождут.

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

👉 Успей попасть на курс «ML для старта в Data Science»
4
📰 Go дайджест Go разработчикам

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

Обновления Go 1.24 и 1.23

В обоих минорных обновлениях закрыта уязвимость в database/sql, из-за которой Rows.Scan мог возвращать некорректные результаты. Исправлен баг в os/exec LookPath при обработке пустой строки, «.» и «..» в PATH.

Интерфейсы позволяют составлять поведение, не наследуя

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

Свежий Cup o’ Go

В новом эпизоде подкаста ведущие обсуждают важные обновления вокруг Go: выпуски Go 1.24.6 и 1.23.12, Microsoft-версию Go Telemetry и обнаружение Supply Chain‑атаки через Go-модуль в GitLab.

Go 1.25 rc3

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

Golang-разработчик — 250 000 — 400 000 ₽, удалённо (Москва).

Golang Developer — Офис (Москва).

Golang-разработчик — 270 000 — 485 000 ₽, удалённо (Москва).

Golang Developer — от 250 000 до 600 000 ₽, удалённо (Владивосток).

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

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

Паттерн Singleflight позволяет предотвратить выполнение одинаковых операций несколькими горутинами одновременно.

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

В Go существует встроенная реализация этого паттерна в пакете golang.org/x/sync/singleflight

Пример реализации:

Используем singleflight.Group для предотвращения дублирующихся запросов:
package main

import (
"fmt"
"log"
"time"
"golang.org/x/sync/singleflight"
)

var g singleflight.Group

// Дорогая операция
func expensiveOperation(key string) (interface{}, error) {
fmt.Println("Выполняем операцию для:", key)
time.Sleep(2 * time.Second)
return fmt.Sprintf("Результат для %s", key), nil
}

func main() {
key := "operation1"

// Выполнение операции с использованием Singleflight
result, err, _ := g.Do(key, func() (interface{}, error) {
return expensiveOperation(key)
})
if err != nil {
log.Fatal(err)
}

fmt.Println(result)

// Запуск нескольких горутин с одинаковым ключом
for i := 0; i < 3; i++ {
go func() {
res, err, _ := g.Do(key, func() (interface{}, error) {
return expensiveOperation(key)
})
if err != nil {
log.Fatal(err)
}
fmt.Println(res)
}()
}

// Ожидаем завершения горутин
time.Sleep(3 * time.Second)
}


singleflight.Group гарантирует, что для каждого ключа будет выполнена только одна операция, даже если несколько горутин одновременно попытаются выполнить одинаковую операцию.

Остальные горутины просто ждут завершения работы первой и получают тот же результат.

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
106👍1
😊 Совет начинающим

Привет, go-сообщество. С чего бы вы начали свой путь, если бы только начали изучать этот язык с нуля?

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

Делитесь своими советами в комментариях 👇


P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Свежий релиз GoLand

GoLand 2025.2 от JetBrains уже доступен, и в нем есть несколько действительно крутых обновлений.

Теперь GoLand помогает избежать ошибок с nil на ранних стадиях. Он анализирует, как значения nil передаются через функции, и предупреждает, если есть шанс на ошибку.

Экран приветствия теперь не блокирует работу — он открывается как вкладка, так что можно сразу же использовать терминал, Docker или HTTP-клиент.

Junie стал еще умнее и быстрее. Он теперь поддерживает MCP, что открывает новые возможности для подключения к внешним источникам данных и API.

Поддержка golangci-lint версии 2 была улучшена, так что теперь анализ кода проходит быстрее и точнее.

➡️ Подробнее про обновление

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰10🥱32🤔1
⚡️ Релиз 1.25 уже доступен

Язык не получил радикальных изменений, но рантайм и инструменты стали заметно умнее.

Go теперь сам подстраивает количество потоков под лимиты CPU из cgroups. Если ограничения меняются на лету — рантайм реагирует без перезапуска.

Новый сборщик мусора greenteagc снижает паузы GC на 10–40%, особенно для мелких объектов. Включается вручную через GOEXPERIMENT=greenteagc.

Теперь по умолчанию выполняется проверка утечек памяти в go build -asan . При необходимости — можно отключить при помощи ASAN_OPTIONS=detect_leaks=0.

➡️ Блог разработчиков

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍9🤩2🤔1
🔍 Что компилятор думает о вашем коде

Иногда полезно заглянуть за кулисы и увидеть, что Go на самом деле делает с вашим кодом.

Заглянуть за кулисы поможет команда:
go tool compile -S main.go


Можно увидеть, создаёт ли компилятор лишние аллокации, оптимизирует ли он цикл, или как он разворачивает inline-функции.

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

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍191
🔥 Успей поднять квалификацию по выгодной цене!

Только до 17 августа у вас есть последняя возможность купить наши курсы по старым ценам.

🔹 Математика для Data Science:

— Базовый: (сейчас) 26 399₽(будет) 33 900₽
— Ультра: 35 199₽44 900₽
— VIP: 59 829₽75 900₽ (выгода больше 16 000₽!)

🔹 Программирование на Python: 24 990₽32 900₽
🔹 Алгоритмы и структуры данных: 31 669₽39 900₽
🔹 Архитектуры и шаблоны проектирования: 24 890₽32 900₽
🔹 AI-агенты для DS специалистов: 54 000₽59 000₽
🔹 Основы IT для непрограммистов: 14 994₽19 900₽
🔹 Базовые модели ML: 6 990₽9 900₽

Важно: Курсы из линейки Frontend Basic полностью снимаются с продажи. 17 августа — буквально последний день, когда их можно будет приобрести.

Успей купить до повышения — осталось 4 дня!

👉 Зафиксировать цену и начать учиться
😢2
Чеклист для проведения собесов

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

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

Подготовка к собеседованию:

• Определите требования к кандидату. Составьте список необходимых квалификаций, навыков и опыта, а также желаемых личных качеств.

• Изучите резюме. Обратите внимание на ключевые моменты: опыт работы, образование, профессиональные достижения.

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

• Определите структуру собеседования. Продумайте, как будете проводить интервью: общая беседа, тестирование, обсуждение кейсов или примеров работы.

Проведение собеседования:

• Создайте комфортную атмосферу. Начните с непринужденной беседы, чтобы кандидат чувствовал себя расслабленно.

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

• Задавайте открытые вопросы. Не ограничивайтесь вопросами, на которые можно ответить «да» или «нет». Спрашивайте о примерах из реальной жизни, ситуациях, где кандидат применял свои навыки.

• Оцените навыки и знания. Используйте тестовые задания или задавайте вопросы, проверяющие профессиональные компетенции.

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

Оценка кандидата:


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

• Обратите внимание на коммуникативные навыки. Как кандидат излагает свои мысли? Легко ли с ним общаться?

• Оцените культурную совместимость. Спросите кандидата о его предпочтениях в рабочем процессе, подходах к работе в команде, отношению к критике.

• Проверьте мотивацию кандидата. Попросите рассказать, почему он заинтересован в вашей компании и вакансии, что его привлекает в вашей отрасли.

После собеседования:

• Запишите впечатления. Сделайте заметки сразу после собеседования, пока впечатления свежи.

• Оцените по нескольким критериям. Создайте шкалу для оценки кандидата по ключевым компетенциям: профессиональные навыки, личные качества, мотивация.

• Проверьте рекомендации. Свяжитесь с предыдущими работодателями или коллегами для получения дополнительной информации о кандидате.

• Обсудите результаты с командой. Сравните мнения коллег, обсудите сильные и слабые стороны кандидата.

Заключение собеседования:


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

• Предоставьте обратную связь. Если собеседование прошло успешно, скажите об этом кандидату. В случае отказа, постарайтесь дать конструктивную обратную связь.

Какие пункты из чеклиста для вас самые важные? Или у вас есть свои советы по проведению собеседований? Поделитесь в комментариях👇

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍3👾3