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

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://t.me/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
📰 Главное за неделю

Неважно, в отпуске, на удалёнке или в танке — теперь вы снова в курсе.

Свежий апдейт GoLand
JetBrains выпустила GoLand 2025.1 с полной поддержкой Go 1.24, интеграцией с golangci-lint, улучшенным рефакторингом JSON-тегов и AI-ассистентами для автодополнения и генерации кода.

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

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

Главные проблемы распределенных систем (и способы их решения)

20 лет Git: все такой же необычный, все такой же великолепный

От многомерности к сути: чему нас учит PCA

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

Middle Backend-developer — Удаленно (Москва)

Старший Backend-разработчик — до 485 000 ₽, Удаленно (Москва)

Senior Golang разработчик — от 250 000 ₽, Удаленно (Москва)

GO-разработчик — Удаленно/Офис (Москва/Краснодар)

Старший Backend-разработчик — от 200 000 ₽, Офис/Гибрид (Москва)

Бустер — удалённо (по всему миру)

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

Подключились к внешнему API, всё работает, но тесты — как лотерея: то проходит, то «502». Если это про Вас, пора узнать, как создать фейковый сервер и навести порядок.

1️⃣ Импорт пакетов
import (
"net/http"
"net/http/httptest"
"testing"
"io/ioutil"
)


2️⃣ Создайте фейковый сервер

Он будет эмулировать ответы настоящего API:
fakeServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte(`{"message": "hello, world!"}`))
}))
defer fakeServer.Close()


3️⃣ Используйте урл фейкового сервера вместо настоящего API в тесте

Выглядеть это будет вот так:
func TestGetMessage(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{"message": "hello from test"}`))
}))
defer server.Close()

msg, err := GetMessage(server.URL)
if err != nil || msg == "" {
t.Errorf("ожидался непустой ответ, получена ошибка: %v", err)
}
}


Фейковый сервер может вернуть и ошибку:
httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
}))


Теперь у Вас есть рабочий способ тестировать HTTP-клиенты без внешнего API. Осталось только внедрить это в свои тесты — и забыть, что значит «флак».

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда сроки горят, а разработчиков не хватает

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

Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!

Что мы предлагаем:

• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA) 

• Полноценная разработка проектов под ключ 

• Гибкое масштабирование команды под потребности клиента 

• Прозрачная коммуникация и регулярная отчетность

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

Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
💪 Оптимизация структур в Go

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

Что важно знать:

Go автоматически добавляет отступы между полями.

Чем более «плотно» вы размещаете данные, тем меньше памяти тратится.

Используйте unsafe.Sizeof() или инструменты визуализации, чтобы проверить реальный размер.

➡️ Разобраться с оптимизацией

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Веб-сервер, который настраивает себя сам

Если Вы только начинаете свой путь в веб-разработке, выбор веб-сервера может показаться сложным. Но есть Caddy — решение, которое позволяет сосредоточиться на коде, а не на конфигурации.

Что делает Caddy особенным

Самостоятельно получает и обновляет сертификаты от Let's Encrypt.

Один Caddyfile может заменить 200 строк YAML'а

Написан на Go, расширяется плагинами, запускается где угодно. Даже на тостере с Wi-Fi.

Функциональность из коробки:

• Обратный прокси
• Статическая отдача контента
• Балансировка нагрузки
• Поддержка HTTP/3
• Интеграция с PHP (если это ещё актуально для Ваших задач)

➡️ Попробовать Caddy

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как изменились микросервисы за десять лет и действительно ли микросервисная архитектура в 2025 году — маст хэв для большой компании?

Разобрались в этом вопросе с CTO платформ Газпромбанка Андреем Бирюковым и Виктором Цветковым, которые стали гостями подкаста «Техно.Логично» 💙

Главные темы эпизода:
как наладить мониторинг и observability
какова роль DevOps-культуры в стабильности сервисов и непрерывности процесса разработки
как поменялись роли инженеров в командах с переходом на новую архитектуру
что ждет микросервисные подходы в будущем

Посмотреть:
📺VK Видео

Послушать:
🎵Яндекс Музыка
📱Apple Podcasts
💙VK Музыка
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Что посмотреть: как живётся с Go по-настоящему

Go хвалят за скорость, простоту и tooling. Но автор видео — разработчик с 15+ годами стажа — показывает, что у этой медали есть обратная сторона.

➡️ Узнать тёмные стороны go

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Как улучшить навыки разработки на Go?

Научитесь правильно использовать интерфейсы — ключ к гибкости и масштабируемости.

🗓 Присоединяйтесь к открытому вебинару 28 апреля в 20:00 мск и разберитесь, как эффективно применять интерфейсы в Go. На примерах мы разберем типовые ситуации и научим вас правильно интегрировать интерфейсы в код.

Понимание интерфейсов — ключ к эффективному проектированию приложений и обеспечению гибкости в коде.

Регистрируйтесь и получите скидку на курс «Golang Developer. Professional»: https://clc.to/LeQWxA

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Go — один из самых быстрорастущих языков. Его используют VK, Авито, Т-Банк и другие крупные компании для создания высоконагруженных сервисов.

На курсе «Go-разработчик с нуля» Нетологии вы освоите язык до продвинутого уровня, разберётесь в микросервисах и многопоточности, выполните 4 проекта для портфолио и сможете начать искать работу уже в процессе обучения.

Начните карьеру Go-разработчика. Актуальная программа 2025 года, бонусный курс по Python с проверкой домашних заданий и поддержка в трудоустройстве от карьерного центра.

Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5yYLuSY
👋 Привет, разработчики!

Если у вас возникали вопросы по Go — архитектурные, синтаксические или просто «что это вообще сейчас было?» — вы по адресу.

📩
Делитесь вопросами в нашей гугл-форме

И мы обязательно на них ответим

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

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

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

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


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

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

➡️ Репозиторий инструмента

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🙌 Как языки программирования выглядят в стиле Гибли

Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести Go во вселенную Миядзаки.

Как вам образ? Расскажите в комментариях ↓

🤩 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🎧 Cup o' Go: тесты становятся умнее, а рейтинг Go — выше

Что обсудили ведущие на этот раз:

Новый метод T.Output() и хранение артефактов в testing

Новый json/v2 — эксперимент в Go 1.25

Go на 7-м месте в TIOBE

Бенчмаркинг через testing.B.Loop

➡️ Слушать подкаст

🐸Библиотека Go разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
🐈 Лучшие материалы по Go в одной подборке

Собрали топовые материалы, которые получили 51 385 сохранений и кликов от наших подписчиков.

Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!

1. Самоучитель по Go для начинающих. Часть 18. Протокол HTTP.

2. Разработка фулстек-приложения на Go (Gin) + React + Postgres + NATS

3. Паттерны многопоточности в Go

4. Секреты внутреннего устройства аллокатора Go

5. sync.Map в Go

6. Итераторы для пагинации API на Go: эффективная обработка данных

7. Обработка ошибок в Go
Please open Telegram to view this post
VIEW IN TELEGRAM
🔁 CRDT: мир без конфликтов (почти)

Знаете, что общего у Google Docs, оффлайнового режима в Notion и распределённых баз данных? Они не орут, когда вы и коллеги одновременно меняете одни и те же данные. Это — Conflict-Free Replicated Data Types, и это не магия, а математика + немного храбрости.

Когда стоит использовать:

• Приоритет — доступность, а не мгновенная консистентность.

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

• Система должна быть устойчива к сетевым разделениям (split-brain).

➡️ Подробнее в источнике

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM