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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
💼 Карьерная «страховка» для IT‑шника

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

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

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
⚙️ Дамп вместо fmt.Printf

godump это минималистичный инструмент для отладки который красиво печатает структуры на Go в терминале или HTML и не требует зависимостей.

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

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

Пример:
type User struct { Name string }
godump.Dump(User{Name: "Alice"})
// #main.User {
// +Name => "Alice" #string
// }


➡️ Репозиторий

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔21
Под капотом управляемой базы данных в MWS Cloud Platform

Разбираем внутренности managed баз в 10-м выпуске реалити-проекта Building the Cloud.

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

📅 Эфир 25 декабря, 14:00 (мск)

🎁 Розыгрыш мерча MWS за лучший вопрос

👉 Регистрация
1
Что выведет код

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

👉 Посмотреть ответ в нашем канале с задачам

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

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

#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🥱2👾2
🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy

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

Мы ищем сильных практиков, которые хотят попробовать себя в роли:

— преподавателей;
— авторов курсов;
— наставников.

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

👉 Заполни короткую анкету
1👾1
🖥 Публикуем модуль на GitHub и подключаем в проект

Go-модули упрощают работу с зависимостями. Код делится на модули, которые легко публиковать и импортировать. Сейчас покажем как выгрузит свой модуль на GitHub и подтянуть его в проект.

Подготовка модуля

Сначала создайте директорию для модуля и инициализируйте его. Запустите go mod init github.com/ваш-username/имя-модуля.

Добавьте код в файлы, например, функцию в math.go:
package math

func Add(a, b int) int {
return a + b
}


Создайте репозиторий на GitHub, добавьте файлы с git add ..

Публикация на GitHub

1. Сделайте коммит изменений git commit -m "v0.1.0".
2. Создайте тег git tag v0.1.0.
3. Отправьте тег git push origin v0.1.0.

Go автоматически индексирует модуль на pkg.go.dev после пуша.

Импорт в другой проект

В новом проекте запустите go mod init myproject. Импортируйте модуль в коде: import "github.com/ваш-username/имя-модуля/math". Вызовите функцию, например result := math.Add(2, 3). Запустите go mod tidy для обновления зависимостей.

Модуль готов к использованию. Версионируйте тегами для стабильности, и коллеги смогут подключать его просто по пути на GitHub.

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7
💻 Хватайтесь за штурвал

Вы кодите на Go, а Kubernetes написан на Go. Логично, правда? Но разворачивать поды, сервисы и ingress вручную, настраивать деплоймент и автоскейлинг — это не про вас.

Пора разобраться как работать с пайплайнами и самостоятельно деплоить своё приложение 👉 @devopsslib

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

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Оркестрация агентов сложнее, чем оркестрация горутин

Но принцип похож: множество независимых акторов, общающихся по протоколам. В 2026 году мультиагентные системы (Multi-Agent Systems) станут стандартом бэкенда.

Мы обновили курс «Разработка AI-агентов», добавив туда всё, что нужно для построения высоконагруженных интеллектуальных систем.

Tech Stack Update:

Protocols: Глубокий разбор MCP (Model Context Protocol) и A2A коммуникации.
Workflow: LangGraph для построения сложных стейт-машин (почти как конечные автоматы, но для LLM).
Ops: AgentOps, мониторинг и деплой.

Старая версия была «игрушечной». Новая — про Production и инфраструктуру (даем доступ к GPU).

🎁 Deal:

Берешь курс по агентам (пока актуально к 2026) — получаешь два курса в подарок. Например, математику и алгоритмы.

Deploy here
4👾1
ℹ️ Дайджест недели

Не устану напоминать, что до Нового Года осталось немного. Новый Год не остановит подборку материалов недели.

Зачем в Go errors.Is и errors.As

Самоподписанный HTTPS для Go

Go 1.26 RC1

TinyGo 0.40.0

Почитать:

Карьерная «страховка» для IT‑шника

15 AI-инструментов для поиска работы в IT за рубежом

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🧹 Чистим JSON

Тэг omitzero убирает поля со значениями по умолчанию из JSON. Раньше использовали omitempty. Он пропускает поля, если они пустые: строка без символов, слайс без элементов или nil. Но для чисел и дат проблема. Нулевое значение int или time.Time всегда попадало в JSON, даже если данных нет.

omitzero решает это. Поле пропускается при нулевом значении типа: 0 для int, false для bool, пустая строка. Для time.Time не нужно делать указатель. Пример:
type User struct {
Name string `json:"name,omitempty"`
Age int `json:"age,omitzero"`
DOB time.Time `json:"dob,omitzero"`
}

u := User{Name: "Алексей"}
json, _ := json.Marshal(u)
// {"name":"Алексей"}


Можно комбинировать теги: json:"field,omitempty,omitzero". Если тип реализует IsZero(), то omitzero использует его логику.

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍9🤔2👾1
🔄 go fix в Go 1.26

go fix и go vet теперь на одной базе, но разные цели. Vet ловит баги, fix безопасно модернизирует синтаксис. Запуск go fix . применит все анализаторы автоматически от any вместо interface{} до wg.Go вместо Add/Done.

➡️ В статье подробнее про все анализаторы и примеры кода.

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

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

#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Строим надёжные AI-системы: инженерный подход

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

В программе:

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

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

Регистрация
4😁1
🛠 Оживляем старую ветку ребейзом

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

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


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

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
🆘 Без замков: неизменяемые данные в 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
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥4👍2🥱1
👥 Топ-вакансий для Go-разработчиков за неделю

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

Middle Go-Developer — от 200 000 ₽

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

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

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

#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
🎅 Секретный Санта для айтишников от Proglib.academy

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

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

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

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

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

Win-win, всё как мы любим!