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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🎧 Новый выпуск подкаста о 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
🛠 Делимся с вами подборкой из 30 API

От погодных прогнозов до спортивной статистики — эти API станут вашим секретным оружием в мире разработки.

🐸Библиотека Go разработчика #инфографика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥42🤩1👾1
🎧 Новые математические функции в Go и обновления от Boot.dev

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

Что вас ждёт в подкасте:

Новые математические функции в Go: рассматривается предложение о добавлении пакета math/stats с функциями для вычисления среднего, медианы и других статистических показателей.​

Обновления безопасности: выпущены обновления для пакетов golang.org/x/crypto (v0.35.0) и golang.org/x/oauth2 (v0.27.0).​

Интервью с Лейном Вагнером: обсуждаются последние новости Boot.dev и его подкаста Backend Banter.​

Блог Go: статья Майкла Пратта «Faster Go maps with Swiss Tables» о повышении производительности карт в Go.​

Конференции: анонс Gophercamp, который пройдет 25 апреля в Брно, Чехия.​

➡️ Полный эпизод подкаста

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
💡 Руководство Uber по стилю написания Go-кода

Наткнулись на гайд от Uber, в котором описаны внутренние правила по написанию кода на Go.

Что там интересного

➡️ Минимум интерфейсов — только если они реально нужны.

➡️ Ошибка — это значение, а не исключение — пишем чистый код без паники.

➡️ Структуры и указатели — как избежать неожиданных мутаций.

➡️ Как работать с каналами и конкурентностью — не делать лишнего.

➡️ Производительность и чистота кода — баланс между оптимизацией и читаемостью.

Стиль Uber — это про четкость, производительность и поддержку кода в долгосрочной перспективе.

🧑‍💻 А какие у вас любимые best practices в Go? Делитесь в комментариях 👇

📎 Почитать гайд

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥6😁31