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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🎥🚀 Стриминг видео на Go: легко, быстро и просто!

Потоковая передача видео может показаться сложной задачей, но язык Go отлично справляется с этим! В статье автор рассказывает, как создать минималистичный HTTP-сервер для стриминга видео прямо в браузер.

В чём суть?
Как работает стриминг
Современные браузеры используют HTTP-заголовок Range, чтобы запросить только нужные части видео. Это позволяет воспроизводить видео без необходимости загружать весь файл.
Реализация на Go
В статье показано, как создать интерфейс, который обрабатывает запросы и отправляет запрошенные байты видеофайла клиенту.
Поддержка частичных запросов
Автор объясняет, как правильно настроить заголовки HTTP, такие как Content-Range и Content-Length, чтобы обеспечить плавный стриминг и совместимость с браузерами.

Почему это интересно?
Простота реализации
Вам не нужно использовать тяжёлые сторонние библиотеки — базовый сервер для стриминга можно собрать за несколько строк кода на Go.
Производительность Go
Go славится своей скоростью и возможностями для работы с сетью. Это делает его отличным выбором для задач, связанных с видео.
Современный подход
Статья соответствует стандартам RFC 7233, что гарантирует корректную обработку запросов браузера.

Зачем это вам?
Если вы хотите добавить потоковую передачу видео в свой проект, Go предоставляет мощный и простой инструмент для этого. Это может быть полезно для образовательных платформ, приложений для онлайн-курсов, медиа-хостинга или даже стриминга собственного контента.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🎉3🔥1😁1😢1
😁56🤩6🎉3❤‍🔥1🥰1
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
👍1
🚀 Оптимизация и стресс-тесты в Go с флагом -cpu

Когда речь идет о тестировании производительности и устойчивости приложений, работающих в многопоточной среде, Go предоставляет отличный инструмент — флаг -cpu. Этот параметр позволяет запускать тесты с разным количеством логических процессоров (GOMAXPROCS), моделируя реальное поведение приложения в условиях разного уровня параллелизма.

📌 Как работает флаг -cpu?
Флаг -cpu указывается при запуске тестов и задаёт список значений, с которыми тесты должны быть выполнены. Например:
go test -cpu=4,5

👉 Этот пример запустит тесты дважды:
1️⃣ С четырьмя логическими процессорами.
2️⃣ Затем с пятью.

🛠 Зачем это использовать?
Тестирование под разной нагрузкой: использование нескольких значений -cpu позволяет понять, как ваше приложение поведёт себя на системах с разным количеством ядер.
Поиск узких мест: помогает выявить проблемы в конкурентном доступе, такие как гонки данных или узкие места в производительности.
Реализм тестов: ваш код проверяется в условиях, максимально приближенных к реальной эксплуатации.

🔑 Ключевые моменты:
Можно указать несколько значений через запятую, например -cpu=1,2,4,8, чтобы протестировать приложение в разнообразных сценариях.
Если -cpu не задан, тесты запускаются с текущим значением GOMAXPROCS.
Практическая выгода: Регулярное использование -cpu в тестах повышает устойчивость вашего кода и предотвращает неожиданные проблемы при высоких нагрузках.

💡 Пример для продвинутых:
Если вы хотите протестировать код на нескольких уровнях параллелизма, запустите:
go test -cpu=1,2,4,8 -v

📊 Результат: тесты покажут, как приложение справляется с 1, 2, 4 и 8 логическими процессорами. Это отличный способ убедиться, что ваш код работает эффективно и безопасно в конкурентной среде.

#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍406😁2❤‍🔥1
🕹🕹 Подборка игр для программистов и любителей логики

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

1️⃣ Human Resource Machine
📜 Жанр: логическая головоломка.
💡 Описание: в этой игре вы программируете маленького офисного сотрудника-робота для выполнения задач. Простая и увлекательная концепция, которая помогает развить алгоритмическое мышление.
⏱️ Длительность: подходит для прохождения за пару вечеров.

2️⃣ The Witness
📜 Жанр: головоломка от первого лица.
💡 Описание: исследуйте красочный остров, полный логических пазлов. Каждая загадка требует внимания, пространственного мышления и способности находить закономерности.
⏱️ Длительность: подойдет для тех, кто готов посвятить игре несколько дней.

3️⃣ Baba Is You
📜 Жанр: логическая игра.
💡 Описание: уникальная игра, где правила буквально можно менять на ходу. Сдвигая блоки, вы переписываете законы мира, создавая собственные решения для головоломок.
⏱️ Длительность: зависит от вашей изобретательности, но можно пройти основные уровни за пару вечеров.

4️⃣ Game Dev Tycoon
📜 Жанр: симулятор разработки игр.
💡 Описание: постройте свою студию разработки игр, создавайте хиты и управляйте процессом. Отличный способ понять, как устроен мир геймдева.
⏱️ Длительность: можно играть долго, но базовые достижения достигаются быстро.

5️⃣ Gunpoint
📜 Жанр: тактический платформер с элементами головоломки.
💡 Описание: в роли шпиона вы используете уникальные гаджеты и хакерские навыки для проникновения в защищенные здания. Игра сочетает элементы логики и экшена.
⏱️ Длительность: идеально подходит для прохождения за пару вечеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
🎄 Начни 2025-й с апгрейдом навыков,
которые откроют двери в мир IT!

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

🔗 Собери свой план и начни путь в IT

Почему это выгодно?

📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.

💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.

💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?

💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.

💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.

💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.

💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.

💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.

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

🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
1👍1
🌟 Уже 2025 год: Время обновить свою ide для Go! 🚀

Разработка на Go продолжает набирать популярность, и если вы все еще используете старые настройки для Visual Studio Code, пора идти в ногу со временем! В статье вы найдете подробное руководство по тому, как сделать вашу IDE максимально удобной и продуктивной.

🔧 Что нужно для старта:
Go (1.22 и выше): Последние версии языка — не только про производительность, но и про новые возможности.
VS Code: Самая гибкая IDE для работы с Go.
Git: Без контроля версий в 2025 году никуда.

🚀 Что настроить в VS Code:
Расширения, без которых нельзя:
Go (ms-vscode.go): официальное расширение для автодополнения, отладки и работы с тестами.
Error Lens: чтобы ошибки были видны сразу, прямо в коде.
GitLens: лучшая интеграция с Git.
Go Test Explorer: легкое управление тестами.

Настройка settings.json:
Автоматическое обновление инструментов Go.
Использование Language Server для лучшей поддержки языка.
Подсказки, которые делают код читабельным.
Горячие клавиши: Настройте свои любимые шорткаты, чтобы ускорить работу в разы.
Please open Telegram to view this post
VIEW IN TELEGRAM
17😁6🥱2
🛠 DebugString() в Go: псевдостандарт для удобной отладки

Недавно в блоге DoltHub вышла интересная статья о неформальном подходе к отладке структур в Go с помощью метода DebugString().

📜 Что такое DebugString()?
Это метод, который используется для получения детального текстового представления структур данных. В отличие от String(), предназначенного для пользовательского вывода, DebugString() раскрывает больше технических деталей, которые полезны разработчикам во время отладки.

Пример:
type Example struct {  
Field1 int
Field2 string
}

func (e Example) DebugString() string {
return fmt.Sprintf(
"Example{Field1: %d, Field2: %q}",
e.Field1,
e.Field2)
}

📌 Почему это полезно?
DebugString() помогает легко визуализировать внутреннее состояние объектов.
Вы можете отделить пользовательский вывод (String()) от отладочного, чтобы не показывать конфиденциальную информацию.
Этот метод может быть добавлен к любым типам, не нарушая существующую функциональность.

🤨 Почему это псевдостандарт?
Go не навязывает DebugString() как обязательный метод, но его использование становится популярным среди библиотек, где требуются расширенные возможности отладки. Это хороший пример того, как в сообществе Go рождаются практичные и неформальные стандарты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😁3🌚21
💡 Хотите порешать задачи?

Загляните в репозиторий! Это небольшой сборник увлекательных задачек для всех, кто хочет изучать или совершенствовать свои навыки программирования на языке Go.

📂 Как всё устроено?
Каждая задача – это отдельная папка с:
Описанием в README.md, чтобы вы точно поняли, что делать.
Тестами в *_test.go, которые не дадут схалтурить.

🛠 Что делать?
1️⃣ Читаем задание в README.md.
2️⃣ Пишем решение на Go.
3️⃣ Запускаем тесты и радуемся (или ищем баги, если тесты падают).

🔥 Подходит как для новичков, так и для бывалых разработчиков, которые любят прокачивать скиллы через практику. А если сделаете самое элегантное решение и успеете быстрее всех, то вас увековечат в репозитории!
Please open Telegram to view this post
VIEW IN TELEGRAM
👏17👍4