Генерация превью для видео на Go с помощью биндингов ffmpeg
Работаешь с видео на Go? Биндинги ffmpeg-go позволяют использовать всю мощь FFmpeg, не выходя из Go-кода. Вот практичный кейс: нужно сгенерировать превью из видео на конкретном таймстампе
👉 @GolangPortal
Работаешь с видео на Go? Биндинги ffmpeg-go позволяют использовать всю мощь FFmpeg, не выходя из Go-кода. Вот практичный кейс: нужно сгенерировать превью из видео на конкретном таймстампе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🤯3
Выходные должны быть весёлыми... Итак:
Invaders — создаём ремейк Space Invaders с использованием Ebitengine и Go
https://idiotcoder.com/invaders
👉 @GolangPortal
Invaders — создаём ремейк Space Invaders с использованием Ebitengine и Go
https://idiotcoder.com/invaders
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2🔥2
Интерактивный тур по Go 1.25
Релиз Go 1.25 запланирован на август, так что сейчас хорошее время посмотреть, что нового
https://antonz.org/go-1-25/
👉 @GolangPortal
Релиз Go 1.25 запланирован на август, так что сейчас хорошее время посмотреть, что нового
https://antonz.org/go-1-25/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Обширная коллекция практичных фрагментов кода, примеров и рецептов на Go для создания эффективных, надёжных и масштабируемых приложений
https://go-cookbook.com
👉 @GolangPortal
https://go-cookbook.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥4👍3
Google OAuth2 Login на Go: минималистичное и полноценное руководство
Руководство по реализации входа через Google OAuth2 на Go без лишних фреймворков — только net/http и стандартные библиотеки. Пошаговый разбор: от настройки OAuth-клиента в Google Cloud Console до обработки login-флоу и получения данных пользователя
https://medium.com/@aynacialiriza/google-oauth2-login-in-go-a-minimal-and-complete-guide-0e9af75908de
👉 @GolangPortal
Руководство по реализации входа через Google OAuth2 на Go без лишних фреймворков — только net/http и стандартные библиотеки. Пошаговый разбор: от настройки OAuth-клиента в Google Cloud Console до обработки login-флоу и получения данных пользователя
https://medium.com/@aynacialiriza/google-oauth2-login-in-go-a-minimal-and-complete-guide-0e9af75908de
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4🏆2
Трюк с ...type в Go, который вы, скорее всего, не используете (вариативность)
В Go, когда вы видите
Отлично подходит для функций, где количество аргументов заранее неизвестно (например,
👉 @GolangPortal
В Go, когда вы видите
func(name ...Type), это вариативная функция. Это значит, что функция может принимать любое количество аргументов указанного типа. Внутри это просто срез, но с синтаксическим сахаром, позволяющим удобно передавать несколько значений.Отлично подходит для функций, где количество аргументов заранее неизвестно (например,
fmt.Println()).Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤6👎2
Продвинутая работа с очередями в Go
Рассмотрите различные способы реализации очередей (в частности, на Go), их типы, а также практическое применение.
Всё, что вы узнаете из этой статьи, станет отличной базой — как для успешного прохождения собеседований, так и для эффективной разработки с использованием структур данных
https://medium.com/@danielabatibabatunde1/mastering-queues-in-golang-be77414abe9e
👉 @GolangPortal
Рассмотрите различные способы реализации очередей (в частности, на Go), их типы, а также практическое применение.
Всё, что вы узнаете из этой статьи, станет отличной базой — как для успешного прохождения собеседований, так и для эффективной разработки с использованием структур данных
https://medium.com/@danielabatibabatunde1/mastering-queues-in-golang-be77414abe9e
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6
Проект для захвата выполнения Go-программы путём взаимодействия с сервером отладчика Delve, с извлечением значений переменных и информации о стеке всех горутин на каждом операторе Go
https://github.com/ahmedakef/gotutor
👉 @GolangPortal
https://github.com/ahmedakef/gotutor
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2👀1
Серия задач по программированию, которые помогут подготовиться к техническим собеседованиям на Go. Решай задачи, отправляй свои решения и сразу получай фидбэк благодаря автоматическому тестированию.
https://github.com/RezaSi/go-interview-practice
👉 @GolangPortal
https://github.com/RezaSi/go-interview-practice
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥5👍3
Будьте осторожны при чтении тела HTTP-запроса с помощью
Это просто и быстро, но если вы работаете с большим файлом, он полностью загрузится в память.
Вместо этого рассмотрите вариант чтения файла по частям или стриминга с использованием, например,
👉 @GolangPortal
io.ReadAll.Это просто и быстро, но если вы работаете с большим файлом, он полностью загрузится в память.
Вместо этого рассмотрите вариант чтения файла по частям или стриминга с использованием, например,
io.CopyPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11❤9
Практическое руководство по корректному завершению горутин в Go с разбором типичных ошибок, шаблонов и приёмов для управления ресурсами при остановке приложений
https://dev.to/jones_charles_ad50858dbc0/graceful-goroutine-shutdowns-in-go-a-practical-guide-2b9a
👉 @GolangPortal
https://dev.to/jones_charles_ad50858dbc0/graceful-goroutine-shutdowns-in-go-a-practical-guide-2b9a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Лёгкий инструмент для деплоя и управления контейнеризированными приложениями в сети Docker-хостов. Закрывает разрыв между Docker и Kubernetes
https://github.com/psviderski/uncloud
👉 @GolangPortal
https://github.com/psviderski/uncloud
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
Рассматривайте возможность возвращать функции очистки при создании объектов. Это помогает убедиться, что этап освобождения ресурсов не будет забыт и его легко обрабатывать с помощью оператора
👉 @GolangPortal
defer в Go.Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤2
Используйте структурированный логгер Go (slog) с контекстом. Добавляйте и извлекайте логгер из контекста. Добавляйте атрибуты в контекст. Автоматически считывайте любые пользовательские значения из контекста, такие как OpenTelemetry TraceID
https://github.com/veqryn/slog-context
👉 @GolangPortal
https://github.com/veqryn/slog-context
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - veqryn/slog-context: Use golang structured logging (slog) with context. Add and retrieve logger to and from context. Add…
Use golang structured logging (slog) with context. Add and retrieve logger to and from context. Add attributes to context. Automatically read any custom context values, such as OpenTelemetry TraceI...
❤4👍3👎1
Шифрование и дешифрование в Go: практическое руководство
https://dev.to/shrsv/encryption-and-decryption-in-go-a-hands-on-guide-3bcl
👉 @GolangPortal
В этом руководстве мы подробно разберём, как работает шифрование и дешифрование в Go, на практике — с примерами кода, которые можно собрать и запустить. Мы охватим базовые темы: от симметричного до асимметричного шифрования, с понятными объяснениями и чистым кодом.
https://dev.to/shrsv/encryption-and-decryption-in-go-a-hands-on-guide-3bcl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
Простой загрузчик конфигураций для Go, который читает и отслеживает изменения из файла, переменных окружения, флагов командной строки и облачных провайдеров (AWS, Azure, GCP).
https://github.com/nil-go/konf
👉 @GolangPortal
https://github.com/nil-go/konf
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍2
Ты неправильно пишешь HTTP-обработчики
Большинство Go-разработчиков пишут обработчики, которые не возвращают ошибки (стандартный способ) — они просто логируют их или вызывают
Но гораздо чище давать обработчику возможность возвращать ошибку и обрабатывать её централизованно. Это делает код более удобным для тестирования, читаемым и сопровождаемым. Вот компактный способ, как это реализовать:
👉 @GolangPortal
Большинство Go-разработчиков пишут обработчики, которые не возвращают ошибки (стандартный способ) — они просто логируют их или вызывают
http.Error прямо внутри. Но гораздо чище давать обработчику возможность возвращать ошибку и обрабатывать её централизованно. Это делает код более удобным для тестирования, читаемым и сопровождаемым. Вот компактный способ, как это реализовать:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5
Хорошая статья: 20 приёмов оптимизации производительности в Go, которые я усвоил на собственных ошибках
Автор делится практическими трюками по повышению производительности Go-приложений, проверенными в боевых условиях, с объяснениями причин и примерами кода
https://leapcell.medium.com/20-go-performance-tricks-i-learned-the-hard-way-3e879ff40dc2
👉 @GolangPortal
Автор делится практическими трюками по повышению производительности Go-приложений, проверенными в боевых условиях, с объяснениями причин и примерами кода
https://leapcell.medium.com/20-go-performance-tricks-i-learned-the-hard-way-3e879ff40dc2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5
Красивая и функционально насыщенная библиотека командной строки для Go, которая упрощает создание эффектных терминальных приложений
https://github.com/alperdrsnn/clime
👉 @GolangPortal
https://github.com/alperdrsnn/clime
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3😁1
Статья объясняет, что современные ОС и Go разделяют два типа времени: wall clock (реальное системное время, которое может синхронизироваться или скакать) и monotonic clock (монотонное время, которое только идёт вперёд и не подвержено корректировкам).
В Go
https://victoriametrics.com/blog/go-time-monotonic-wall-clock/
👉 @GolangPortal
В Go
time.Now() возвращает структуру time.Time, содержащую оба значения, что позволяет правильно измерять интервалы и избегать багов, связанных с изменением системного времениhttps://victoriametrics.com/blog/go-time-monotonic-wall-clock/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6
Я уже какое-то время работаю с пакетом errors, но только недавно заметил, что в нём есть сентинил ErrUnsupported (начиная с Go 1.21).
Он используется, когда операция не может быть выполнена, потому что она не поддерживается.
Ты когда-нибудь использовал ErrUnsupported?
Полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤2