Библиотека 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
👉 Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков

Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/7af8c5cc

🧐 Кому подойдет?
Разработчикам, которые знают любой объектно-ориентированный язык программирования и хотят углубиться в архитектурные паттерны.

🎮 Как проходит обучение?
В течение всего интенсива вы будете создавать игру «Звездные войны» и применять ключевые архитектурные паттерны. В процессе изучите:
– Как строить гибкую архитектуру, которая не замедляет разработку
– Как применять IoC-контейнеры и писать модульные тесты
– Как использовать SOLID за пределами ООП
– Как внедрять CI/CD и снижать технический долг

👉 Подробная программа обучения

А по промокоду MIDDLE до 28 февраля вы получите дополнительную скидку на обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥱3🌚1
⚙️ Go-инструменты без хаоса в зависимостях

В версии Go 1.24 появилась новая функция для управления зависимостями инструментов разработки.

Теперь вы можете добавлять, обновлять и удалять такие инструменты, как staticcheck, govulncheck и другие, используя флаг -tool с командой go get.

Чтобы добавить инструмент, выполните команду:
go get -tool путь_к_пакету@версия


Например, для добавления stringer и govulncheck:
go get -tool golang.org/x/tools/cmd/stringer
go get -tool golang.org/x/vuln/cmd/govulncheck

После этого в файле go.mod появится секция tool, содержащая добавленные инструменты.

Запуск инструментов осуществляется через команду go tool:
go tool имя_инструмента [аргументы]


Для обновления инструмента до последней версии используйте:
go get -tool путь_к_пакету


➡️ Подробности в статье

🐸 Канал Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍216🎉2🌚2👾1
🎧 Новый выпуск подкаста о Go

В свежем выпуске подкаста Cup o' Go ведущие обсудили актуальные темы из мира Go и провели интервью с Карлосом Беккером.

Предстоящие обновления безопасности: анонсированы обновления для пакетов golang.org/x/oauth2 и golang.org/x/crypto, которые планируются на понедельник, 24 февраля.

Анализ рынка труда: обзор статьи Гергеля Ороса "State of the startup and scaleup hiring markets", где рассматриваются текущие тенденции найма в стартапах и растущих компаниях.

Тестирование конкурентного кода: обсуждение блога Дэмиена Нила "Testing concurrent code with testing/synctest", посвященного методам тестирования конкурентных программ в Go.

Предложения по улучшению: рассмотрение возможного принятия предложения о поддержке контентной неготации в пакете net/http.

Интересные проекты: упоминание проектов "Minecraft from scratch" и "MyNav" в рамках короткого обзора.

🖇 Слушать обсуждение новостей

🐸Библиотека Go разработчика #подкаст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
⚔️ Поздравляем защитников Go-разработки:

▪️ горутины — элитный спецназ параллельного выполнения. Бросаешь в бой тысячи бойцов одной командой go.

▪️ встроенный форматтер — безжалостный диктатор стиля кода. Забудь свой любимый отступ в 2 пробела.

▪️ panic/recover — группа быстрого реагирования. Когда всё летит в тартарары, они тут как тут.

Признавайтесь, кто ваш любимый защитник кода? 👇
👍26😢10🌚9😁5🤔1
Документация PostgreSQL — лучший источник знаний о СУБД. Но она отличается огромным объемом: не каждый разработчик осилит 3024 страницы формата А4.

Опытный бэкендер составил список самых важных сведений, которые ему самому хотелось бы знать перед началом работы с PostgreSQL. Эта подборка сэкономит вам несколько недель изучения документации, и скорее всего, пригодится для работы с другими СУБД.

👉 Список самого важного
🥱9🔥51
🌐 Как ускорить API

#инфографика про основные методы улучшения производительности API

💬 Какой из методов вы уже используете? Делитесь в комментариях! 👇

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91🔥1👾1
📊 Big Data и Data Science в некоммерческом секторе.

Big Data и Data Science применяются не только в IT-гигантах, но и в некоммерческом секторе, где технологии анализа данных помогают оптимизировать работу организаций, собирать средства и оказывать помощь эффективнее.

➡️ Что внутри статьи:

▪️ Как некоммерческие организации используют Data Science.

▪️ Оптимизация фондов и финансирования с помощью аналитики.

▪️ Роль прогнозных моделей в благотворительности.

▪️ Кейсы Amnesty International, Khan Academy и DataKind.

🔵 Вливайся в мир Big Data вместе с нашим курсом «Базовые модели ML и приложения»

📎 Статья Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👾1
⚙️ Новый инструмент для тестирования конкурентного кода в Go

В Go 1.24 появилась экспериментальная библиотека testing/synctest, которая упрощает тестирование конкурентных программ. Теперь можно контролировать время в тестах и управлять синхронизацией асинхронных операций, делая тесты более надежными и предсказуемыми.

📌 Что умеет testing/synctest

• Позволяет тестам управлять временем с фиктивными часами.

• Упрощает тестирование горутин и асинхронных процессов.

• Делает тесты стабильнее за счет детерминированной синхронизации.

Чтобы попробовать, нужно включить экспериментальную фичу:
GOEXPERIMENT=synctest go test


➡️ Подробности с примерами кода

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17💯31
🤯 Побитовые операции в Go

Побитовые операторы работают с битами (0 и 1) и применяются к целочисленным переменным с одинаковой длиной битовой последовательности. Форматная строка %b используется для представления числа в бинарном формате.

Основные побитовые операторы в Go:

1. &: Побитовое AND
2. |: Побитовое OR
3. ^: Побитовое XOR
4. &^: AND NOT (сброс бита)
5. <<: Сдвиг влево
6. >>: Сдвиг вправо

Пример использования побитового оператора AND для проверки чётности числа:
package main

import "fmt"

func main() {
x := 125
if x&1 > 0 {
fmt.Println("Нечётное")
} else {
fmt.Println("Чётное")
}
}

В этом примере проверяется младший значащий бит числа. Если он равен 1, число нечётное; если 0 — чётное.

Практическое применение побитовых операторов:

Криптография: шифрование данных часто требует манипуляций на уровне битов для обеспечения безопасности.

Сетевые технологии: управление правами доступа и настройка сетевых протоколов могут включать операции с битовыми масками.

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

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

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍167👾1
Работа мечты в один клик 💼

💭 Мечтаешь работать в Сбере, но не хочешь проходить десять кругов HR-собеседований? Теперь это проще, чем когда-либо!

💡 AI-интервью за 15 минут – и ты уже на шаг ближе к своей новой работе.

Как получить оффер?

📌 Зарегистрируйся здесь
📌 Пройди AI-интервью
📌 Получи обратную связь сразу же!

HR больше не тянут время – рекрутеры свяжутся с тобой в течение двух дней! 🚀

Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzquscAwp
👍6😁5🤔3🤩2😢1
📕 Новинка компьютерной литературы про Go

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

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

Основные темы книги:

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

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

Обработка ошибок и конкурентность: рекомендации по эффективному управлению ошибками и реализации конкурентных процессов с использованием горутин и каналов.

➡️ Рекомендуем к прочтению

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😢3
📄 Go-документация в Neovim

godoc.nvim позволяет искать и просматривать документацию стандартных и локальных Go-пакетов прямо в редакторе, без необходимости переключаться в браузер или терминал.

Особенности godoc

• Быстрый поиск по стандартной библиотеке Go и вашему коду.

• Синтаксическая подсветка документации благодаря Tree-sitter.

• Интеграция с Telescope и Snacks для удобного выбора пакетов.

• Минимальные зависимости — нужен только go doc и go list.

➡️ Попробовать проект

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3
⚙️ Паттерн Saga в микросервисах

Saga – это паттерн управления распределёнными транзакциями, который позволяет избежать монолитных блокировок и традиционных ACID-ограничений.

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

🏗 Два подхода к реализации

1. Оркестрация

Управляется централизованным координатором

Каждый шаг выполняется по команде оркестратора

Минус: если оркестратор падает – процесс замирает

В Go можно реализовать с помощью Temporal.io или Cadence.

2. Хореография

Нет центрального контроллера, сервисы реагируют на события друг друга

Нет узкого места в виде одной точки отказа

Минус: сложнее управлять, каскад событий может усложнить отладку

В Go можно использовать Kafka, NATS, RabbitMQ для коммуникации между сервисами.

💡 Какой выбрать

Оркестрация — проще в управлении, но менее гибкая

Хореография — сложнее в отладке, но лучше масштабируется

➡️ Подробнее про паттерн

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73
Совет на 2025-й — будьте осторожнее с выбором работы.

IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных.

Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦‍♂️

Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях:

— Зарплаты на уровне рынка, а не на уровне голодного студента
— Никаких «мы молодая и дружная семья» — только адекватные условия
— Проверенные работодатели, а не стартапы из сомнительных сфер

Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях.

Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs
👍1
✏️ Написано на Go: веб-интерфейс для работы с SQLite

SQLiteAdmin-Go — это легковесный веб-интерфейс для просмотра, редактирования и управления SQLite-базами прямо из браузера.

Что умеет и какие фишки

• Просмотр таблиц и схем базы данных.

• Фильтрация и редактирование данных.

• Поддержка работы как библиотека для Go, так и самостоятельного бинарника.

• Открытый исходный код – расширяйте под свои нужды!

📎 Репозиторий на GitHub

📎 Демо проекта

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7🥱4
🌐 OpenAPI + Go

OpenAPI — стандарт для описания REST API, который упрощает их документирование, тестирование и генерацию кода.

В Go OpenAPI можно интегрировать с помощью oapi-codegen, автоматизируя процесс разработки.

Благодаря OpenAPI, документация всегда актуальна, а тестирование API становится проще.

➡️ Реализация и YAML-примеры

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥2
📊 Почему увольнять программистов ради ИИ — путь к провалу

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

➡️ Что внутри статьи

▪️ Почему новые поколения программистов рискуют потерять ключевые навыки.

▪️ Как компании, заменившие инженеров ИИ, столкнутся с серьезными проблемами.

▪️ Почему опытные разработчики станут супердорогими и востребованными.

▪️ К чему приведет полная ставка на искусственный интеллект в IT.

🔵 Подтяните свои знания о машинном обучении вместе с нашим курсом «Базовые модели ML и приложения»

🔗 Читайте статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
👋 Привет, Go-сообщество!

С какой версии языка вы начинали своё погружение?
А какая версия стала для вас самой необычной в плане обновлений?

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

🐸Библиотека Go разработчика #интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚111
🛠 Техника для решения задач

Бэктрекинг (Backtracking) — это алгоритмическая техника поиска, которая перебирает возможные решения рекурсивно, откатываясь назад, если текущий путь не ведёт к успеху.

Как работает бэктрекинг

1. Выбираем следующий шаг – пробуем одно из возможных решений.

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

3. Продолжаем поиск – если решение найдено, фиксируем его и ищем другие варианты.

Пример кода — поиск всех перестановок строки
func permute(arr []rune, l, r int) {
if l == r {
fmt.Println(string(arr))
} else {
for i := l; i <= r; i++ {
arr[l], arr[i] = arr[i], arr[l] // Обмен
permute(arr, l+1, r)
arr[l], arr[i] = arr[i], arr[l] // Откат
}
}
}


Где используется

• Генерация перестановок и комбинаций – подбор паролей, составление расписаний.

• Задача N ферзей – расстановка фигур без угрозы друг другу.

• Поиск пути в лабиринте – навигация в сложных структурах.

• Разбор выражений и парсинг – обработка кода и регулярных выражений.

🤔 Использовали ли вы бэктрекинг в реальных проектах? Делитесь опытом в комментариях! 👇

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143
👨‍💻 Разработка на Go с Live-Reloading

Если вы Go-разработчик, то знаете, насколько утомительно останавливать и перезапускать приложение при каждом изменении кода. Существует решение этой рутины — Go Air.

Что такое Go Air

Go Air — инструмент командной строки, который отслеживает изменения в вашем Go-проекте и автоматически перезапускает приложение.

Краткий обзор настройки

1. Установка Go Air
go install github.com/cosmtrek/air@latest


2. Создание Dockerfile

3. Конфигурация .air.toml

• Директории для исключения
• Интервал опроса изменений
• Правила перестройки приложения

4. Настройка docker-compose.yml

5. Тестирование Live-Reloading

При изменении файлов Go Air автоматически перестраивает и перезапускает приложение без ручного вмешательства.

➡️ Реализация с картинками

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👾42😁2👏1