Media is too big
VIEW IN TELEGRAM
Go стал ещё быстрее…
Скоро выйдет Go 1.25, и он наконец-то делает язык быстрее. Это обновление включает ключевые улучшения, устраняющие давние проблемы и повышающие производительность Go для разработчиков
Примечания к релизу Go 1.25:
https://tip.golang.org/doc/go1.25
Смотреть видео на YouTube
👉 @GolangPortal
Скоро выйдет Go 1.25, и он наконец-то делает язык быстрее. Это обновление включает ключевые улучшения, устраняющие давние проблемы и повышающие производительность Go для разработчиков
Примечания к релизу Go 1.25:
https://tip.golang.org/doc/go1.25
Смотреть видео на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍8
Go-проект для развертывания контейнеризованных приложений в виде платформы веб-приложений для внутренних инструментов. Clace поддерживает Linux, Windows и OSX, предоставляя GitOps-подход для управления веб-приложениями
https://github.com/claceio/clace
👉 @GolangPortal
https://github.com/claceio/clace
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🤔1
context.Value — не наш другПоговорим о плохом паттерне в Go, особенно актуальном для новичков
Когда наши Go-приложения разрастаются, нередко возникает необходимость делиться данными между несколькими функциями.
Например, функция A может получить запись о платеже из базы данных и положить её в контекст, а функция C затем извлекает её, находясь где-то далеко.
Это кажется удобным, потому что:
ctx.payment в список аргументов."Почему бы просто не вызвать функцию C из функции A?"
Есть множество причин; например, C является частью логики B и использует аргументы, полученные от B.
Так в чём же проблема?
Вот где начинаются сложности:
На мой взгляд, главная проблема использования
ctx.Value — это чрезмерная неявность. Данные "прячутся" в контексте, и отследить их становится сложно.Неявность может быть вредной, даже если к ней легко привыкнуть.
…
Итак, когда же стоит использовать
context.Value()?Я бы рекомендовал избегать его, когда это возможно. Тем не менее, в документации Go указано, что он полезен для "передачи значений, связанных с запросом, через границы API и между процессами".
Имеет смысл применять его для передачи данных, связанных с запросом, таких как:
…
"Разве payment не относится к запросу?"
Если
payment нужен во многих функциях цепочки, лучше передавать его явно. Это делает очевидным, что функция работает с payment, не читая тело запроса.Я бы избегал передачи бизнес-данных через
context.Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤12
Скоро в Go 1.25: Эволюция JSON в Go — от v1 к v2
Вторая версия пакета json, которая появится в Go 1.25, представляет собой крупное обновление с множеством несовместимых изменений. Пакет v2 добавляет новые возможности, исправляет проблемы с API и поведение, а также значительно улучшает производительность.
Давайте посмотрим, что изменилось:
https://antonz.org/go-json-v2/
👉 @GolangPortal
Вторая версия пакета json, которая появится в Go 1.25, представляет собой крупное обновление с множеством несовместимых изменений. Пакет v2 добавляет новые возможности, исправляет проблемы с API и поведение, а также значительно улучшает производительность.
Давайте посмотрим, что изменилось:
https://antonz.org/go-json-v2/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5
Опенсорсная современная веб-панель управления для администрирования Linux-серверов.
https://github.com/1Panel-dev/1Panel
👉 @GolangPortal
https://github.com/1Panel-dev/1Panel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4
Генерация превью для видео на 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