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

Логотип телеграм канала @goproglib — Библиотека Go-разработчика | Golang Б
Актуальные темы из канала:
Го
Новости
Назлобудня
Самыйсок
Почитать
Тип
Интерактив
Развлекалово
Bust
Междусобойчик
All tags
Логотип телеграм канала @goproglib — Библиотека Go-разработчика | Golang
Актуальные темы из канала:
Го
Новости
Назлобудня
Самыйсок
Почитать
Тип
Интерактив
Развлекалово
Bust
Междусобойчик
All tags
Адрес канала: @goproglib
Категории: Технологии
Язык: Русский
Количество подписчиков: 23.65K
Описание канала:

Все самое полезное для Go-разработчика в одном канале.
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/32d20779
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a4a8c2468

Рейтинги и Отзывы

2.00

2 отзыва

Оценить канал goproglib и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

1

2 звезд

0

1 звезд

1


Последние сообщения

10 янв
Бинарное дерево поиска (BST) в Go

BST — это бинарное дерево, где:

• Значение в левой ветви меньше значения в узле.

• Значение в правой ветви больше значения в узле.

Такое свойство обеспечивает эффективный поиск, вставку и удаление — в среднем за O(log n).

Пример реализации:
// Node — узел бинарного дерева
type Node struct {
Value int
Left *Node
Right *Node
}

// Insert — вставка нового значения в дерево
func (n *Node) Insert(value int) {
if value < n.Value {
if n.Left == nil {
n.Left = &Node{Value: value}
} else {
n.Left.Insert(value)
}
} else if value > n.Value {
if n.Right == nil {
n.Right = &Node{Value: value}
} else {
n.Right.Insert(value)
}
}
}

// Search — поиск значения в дереве
func (n *Node) Search(value int) *Node {
if n == nil {
return nil
}
if n.Value == value {
return n
} else if value < n.Value {
return n.Left.Search(value)
} else {
return n.Right.Search(value)
}
}

// InOrderTraversal — обход дерева в порядке (LNR)
func (n *Node) InOrderTraversal() {
if n == nil {
return
}
n.Left.InOrderTraversal()
fmt.Print(n.Value, " ")
n.Right.InOrderTraversal()
}

Как это работает?

Вставка:

• Если значение меньше текущего узла, идём в левое поддерево.

• Если больше — в правое.

• Если узел пуст, создаём новый.

Поиск:

• Сравниваем искомое значение с текущим.

• Меньше — идём влево, больше — вправо, равное — нашли.

Обход:

• In-order обход (LNR) обходит узлы в отсортированном порядке.

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
1.84K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
10 янв
Пакет embed в Go: файлы внутри бинарника

С помощью директивы //go:embed вы можете встроить файлы (например, HTML, CSS, конфигурационные файлы или изображения) прямо в бинарный файл.

Как использовать:
//go:embed hello.txt
var hello string

//go:embed version.json
var version []byte

//go:embed templates/*
templates embed.FS

go build втянет файлы. string для текста, []byte для бинарей, embed.FS для папок.

Плюсы:

+ Один файл для деплоя
+ Файлы защищены от изменений
+ Нет зависимостей от FS окружения

Минусы:

- Большие файлы раздувают бинарник
- Динамические конфиги не подойдут

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
2.43K views08:59
Подробнее
Поделиться:
Открыть/Комментировать
9 янв
Minecraft на чистом Go

Прошлой зимой показывали этот проект — полноценный клон Minecraft на Go и OpenGL. Без движков, всё с нуля: рендеринг, физика, генерация мира.

Запуск:
git clone https://github.com/GianlucaP106/minecraft && cd minecraft
go run .

Если хотите разобраться в 3D-графике без Unity и Unreal — исходники открыты.

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.42K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
9 янв
Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.29K views06:59
Подробнее
Поделиться:
Открыть/Комментировать
8 янв
Флаг -cpu: стресс-тесты на разном числе ядер

В начале года рассказывали про этот флаг — он до сих пор остаётся одним из самых недооценённых инструментов для тестирования конкурентного кода.

Флаг -cpu запускает тесты с разными значениями GOMAXPROCS. Указываете список — Go прогоняет тесты для каждого:
go test -cpu=1,2,4,8 -v

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

Зачем это нужно

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

Ещё это способ понять, как код масштабируется. Если на 8 ядрах работает не быстрее, чем на 2 — где-то узкое место.

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

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.4K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
8 янв
ИИ в разработке: страх и адаптация

В июле мы наткнулись на тему в реддите:
Я только что наблюдал, как AI-агент взял задачу в Jira, разобрался в нашей кодовой базе и за несколько минут отправил Pull Request — и это меня действительно пугает.

Что поменялось с тех пор? ИИ вас уже заменил?

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.33K views06:59
Подробнее
Поделиться:
Открыть/Комментировать
7 янв
Параллелизм 2.0: оркестрация автономных агентов на Go

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

На курсе вы изучите:

— паттерн ReAct: создание «сознательных» ботов на базе LLM;
— работу с n8n для быстрой сборки конвейеров автоматизации;
— протокол MCP от Anthropic для общения между агентами;
— продвинутый RAG для эффективной работы с контекстом.

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

До 12 января акция «3 в 1»: забирайте курс по ИИ-агентам и ещё два в придачу.

Ворваться в AI-экосистему
3.44K views15:06
Подробнее
Поделиться:
Открыть/Комментировать
7 янв
Не только commit и push

Напоминаем вам простые, но полезные команды для работы с git-репозиториями.

1. Отображение истории в виде графа:
git log --graph --oneline --all --decorate

2. Временное сохранение изменений без коммита:
git stash push -m "Описание стэша"
git stash list
git stash apply stash@{0}

3. Поиск по коммитам:
git log -S "поисковая строка"

4. Переименование последних коммитов в интерактивном режиме:
git rebase -i HEAD~3

Вспомнили все команды — ставьте

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.47K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
7 янв
Обработку ошибок в Go не будут менять

Команда разработки Go столкнулась с трудностями при попытке упростить этот процесс через синтаксические изменения языка.

За последние несколько лет разработчики пытались улучшить обработку ошибок через:

• Механизм check/handle в 2018.
• Функцию try в 2019.
• Предложение с оператором «?» в 2024.

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

Читать размышления разработчиков

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.62K views06:59
Подробнее
Поделиться:
Открыть/Комментировать
6 янв
Как вы там на новогодних? Ещё не осеньорились?

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.58K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
6 янв
Go vs C#: когда что выбирать

В феврале мы сравнивали эти два языка — пост собрал много комментариев. Освежим основные тезисы.

Область применения

• Go — детище Google для облака, микросервисов и высоконагруженных систем. Простота и скорость — главные козыри.

• C# — инструмент Microsoft для корпоративного софта, игр на Unity и десктопа под Windows.

Кроссплатформенность

• Go компилируется в один бинарник без зависимостей — запускается где угодно.

• C# работает через .NET Core на разных платформах, но требует рантайм.

Система типов

• Go минималистичен: никакого наследования, только интерфейсы и композиция.

• C# даёт полный ООП-арсенал: наследование, дженерики, функциональные фишки.

Когда что брать

• Go — если пишете API, микросервисы, CLI-утилиты. Когда важны простота деплоя и производительность без магии.

• C# — если нужен Unity, десктоп под Windows или мощная корпоративная экосистема с LINQ и Entity Framework.

Заглядывайте в Библиотеку шарписта, там тоже хит-парад лучших постов 2025 года

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.67K views06:59
Подробнее
Поделиться:
Открыть/Комментировать
5 янв
Go решил отдохнуть

В рейтинге TIOBE наш любимый язык за год потерял 8 позиций.

Навигация: ВакансииЗадачиСобесы

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

#GoLive
3.84K views17:59
Подробнее
Поделиться:
Открыть/Комментировать
5 янв
Декларативная валидация данных в Go

Zog – это библиотека, вдохновлённая Zod. Она позволяет гибко и декларативно проверять входные данные, минимизируя ручную обработку ошибок.

Где пригодится

• Валидация JSON-запросов в API
• Проверка параметров HTTP-запросов
• Чтение и проверка переменных окружения
• Минимизация кода валидации и ошибок

Пример использования:
var UserSchema = zog.Object(map[string]zog.Schema{
"username": zog.String().Min(3).Max(20),
"email": zog.String().Email(),
"age": zog.Number().Min(18),
})

func main() {
data := map[string]interface{}{
"username": "go_dev",
"email": "test@proglib.io",
"age": 25,
}

parsed, err := UserSchema.Parse(data)
if err != nil {
fmt.Println("Ошибка валидации:", err)
return
}

fmt.Println("Успешно:", parsed)
}
Создаём схему UserSchema, где username должен быть строкой длиной от 3 до 20 символов, email – валидным email-адресом, а age – числом не меньше 18. Передаём тестовый JSON и проверяем его с помощью UserSchema.Parse().

Официальный репозиторий проекта

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
4.13K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
5 янв
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-разработчика

#лучшее_из_библиотеки_2025
4.03K views06:59
Подробнее
Поделиться:
Открыть/Комментировать
4 янв
Это скорее всего главный мем 2025 года

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.93K views12:59
Подробнее
Поделиться:
Открыть/Комментировать
4 янв
7 архитектурных паттернов, которые должен знать каждый программист

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

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

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
4.11K views08:59
Подробнее
Поделиться:
Открыть/Комментировать
3 янв
Высокопроизводительные AI-агенты: пора строить экосистемы

Go идеально подходит для инфраструктуры ИИ, но чтобы управлять логикой моделей, нужны паттерны автономности. В 2026-м недостаточно уметь дёргать OpenAI API.

На курсе «Разработка AI-агентов» мы учим строить автономные системы:

— использование паттерна ReAct для принятия решений агентом;
— оркестрация в n8n для управления сложными флоу;
— внедрение протокола MCP для обмена данными;
— создание быстрых RAG-систем для работы с контекстом.

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

До 12 января действует акция «3 в 1»: забирай курс по ИИ-агентам и 2 дополнительных курса в подарок.

Ворваться в AI-разработку
3.97K views13:30
Подробнее
Поделиться:
Открыть/Комментировать
3 янв
Watermill для событий

Весной мы рассказывали про Watermill, фреймворк для Go, который упрощает обработку сообщений. Поддерживает Kafka, RabbitMQ, NATS и другие брокеры.

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

Код простой: роутер подключаете, хендлер с subscriber и publisher. Сообщение приходит, обрабатываете, дальше шлёте. Идеально для заказов в e-commerce или аналитики.

Пример:
r := router.NewRouter(router.Config{}, logger)
r.AddHandler(
"order_handler",
"orders",
kafkaSubscriber,
"processed_orders",
rabbitPublisher,
func(msg *message.Message) ([]*message.Message, error) {
// Логика обработки сообщения
return []*message.Message{msg}, nil
},
)
r.Run()

Дополняем пост ссылкой на инструмент

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.79K views13:13
Подробнее
Поделиться:
Открыть/Комментировать
3 янв
Карта взаимодействия приложения

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

go-callvis решает эту проблему: он строит интерактивную диаграмму вызовов прямо из кода.

Как установить:
go install github.com/ofabry/go-callvis@latest

Главная команда:
go-callvis ./...

Это запустит HTTP-сервер по адресу http://localhost:7878/, где можно интерактивно просматривать граф вызовов.

Навигация: ВакансииЗадачиСобесы

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

#лучшее_из_библиотеки_2025
3.62K views08:59
Подробнее
Поделиться:
Открыть/Комментировать
2 янв
Золотая лихорадка закончилась

2025-й стал годом «скучной стабильности» в айти. Компании не росли — выживали: резали бюджеты, оптимизировали команды, затягивали найм.

2383 отклика на 1 вакансию.
−20% позиций за год.
30-50% сокращений в e-commerce.

Полный разбор рынка

Навигация: ВакансииЗадачиСобесы

Библиотека Go-разработчика
4.2K views10:59
Подробнее
Поделиться:
Открыть/Комментировать
25 дек 2025
RACK сделал интернет-соединения в Go на 71% быстрее

Pion — библиотека на Go для видеозвонков и чатов в браузере. Они улучшили протокол передачи данных, добавив RACK. Теперь скорость выросла на 35%, задержки упали на 25%, CPU тратит меньше на 21%.

Раньше при потере пакетов программа ждала таймер или 3 жалобы от получателя — и пересылала всё заново. RACK смотрит на время: "Сколько прошло с последнего подтверждения?" Шлет тестовый пакет, быстро понимает, что потерялось, и пересылает только нужное.

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

Навигация: ВакансииЗадачиСобесы

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

#GoLive
1.83K views18:07
Подробнее
Поделиться:
Открыть/Комментировать
25 дек 2025
WANTED: GO-ЭКСПЕРТ

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

Приметы:

— профессионально пишет на Go (приветствуется опыт в Python или Java);
— понимает внутреннее устройство горутин и планировщика;
— умеет объяснять сложные вещи просто и без лишней воды;
— готов стать лицом большой площадки Proglib.

Твоя награда:

— статус эксперта в Proglib Academy;
— достойная оплата за подготовку контента;
— медийный вес в Go-комьюнити.

Явка с повинной

P.S. Твой лид — фанат Golang? Пора его сдать нам.
2.17K views15:02
Подробнее
Поделиться:
Открыть/Комментировать
25 дек 2025
Нет значит нет

No as a Service это маленький HTTP сервис который по GET запросу возвращает JSON с рандомной причиной отказа.

Скидывайте в комменты какой ответ попался вам


Получить свой отказ

Навигация: ВакансииЗадачиСобесы

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

#GoTalk
2.77K viewsedited  06:59
Подробнее
Поделиться:
Открыть/Комментировать
25 дек 2025
Секретный Санта для айтишников от Proglib.academy

Весь этот год команда Академии запускала курсы для айтишников. А под Новый год мы запускаем новый курс по ИИ-агентам и ставим под ёлку самый свежий стек 2025 года и обучение проектированию автономных нейросетевых экосистем — от LLM и ReAct-циклов до мультиагентных систем, LangGraph, AutoGen и продакшн-практик.

Хотим дарить подарки и приглашаем вас поучаствовать в конкурсе:

Упомяните курс Академии у себя в блоге.
Пришлите скрин сюда.
Получите секретный промокод на 10 000 ₽ при оплате любого курса.

Подходит всё — соцсети, блоги, Telegram-каналы от 300 подписчиков и более.

Акция действует до Нового года.

Win-win, всё как мы любим!
2.62K views05:30
Подробнее
Поделиться:
Открыть/Комментировать
24 дек 2025
Навигация: ВакансииЗадачиСобесы

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

#GoGiggle
2.71K views17:59
Подробнее
Поделиться:
Открыть/Комментировать
24 дек 2025
Топ-вакансий для Go-разработчиков за неделю

Go Intern — 60 000 ₽. Лучше вакансии для начинающих найти сложно.

Middle Go-Developer — от 200 000 ₽

Senior Golang Engineer — от 325 300 ₽ с удалёнкой.

Еще больше топовых вакансий — в нашем канале Go jobs

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

#GoWork
2.94K views11:40
Подробнее
Поделиться:
Открыть/Комментировать
24 дек 2025
Без замков: неизменяемые данные в Go

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

Пример: общий конфиг
type Config struct {
LogLevel string
Timeout time.Duration
Features map[string]bool
}

func NewConfig(...) *Config {
copied := make(map[string]bool, len(features))
for k, v := range features { copied[k] = v }
return &Config{..., Features: copied}
}

var current atomic.Pointer[Config]
current.Store(NewConfig(...))
func GetConfig() *Config { return current.Load() }

Затем читаем из конфига:
cfg := GetConfig();
if cfg.Features["beta"] { ... }

Навигация: ВакансииЗадачиСобесы

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

#GoDeep
2.99K viewsedited  06:59
Подробнее
Поделиться:
Открыть/Комментировать
23 дек 2025
Оживляем старую ветку ребейзом

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

Решение:
git pull --rebase origin release/3.2.0

Git останавливается на проблемных коммитах. Чиним, коммитим изменения, git rebase --continue. В конце git push --force-with-lease. Безопасно перезапишет remote.

Навигация: ВакансииЗадачиСобесы

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

#GoToProduction
2.96K views17:59
Подробнее
Поделиться:
Открыть/Комментировать
23 дек 2025
Строим надёжные AI-системы: инженерный подход

Для тех, кто ценит производительность и строгий контроль. Мы учим создавать автономных ИИ-агентов как управляемые компоненты архитектуры с предсказуемым поведением.

В программе:

логика на `LangGraph` для перехода от ненадёжных цепочек к детерминированным графам;
реализация `RAG` с использованием векторных хранилищ для точной работы с данными;
автоматизация пайплайнов через n8n и Python для интеграции в существующий бэкенд;
мониторинг рантайма через LangSmith для контроля качества и затрат на токены.

Постройте устойчивую AI-инфраструктуру, готовую к нагрузкам.

Регистрация
2.98K views14:25
Подробнее
Поделиться:
Открыть/Комментировать
23 дек 2025
Навигация: ВакансииЗадачиСобесы

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

#GoGiggle
2.97K views06:59
Подробнее
Поделиться:
Открыть/Комментировать