Инфраструктура аутентификации с открытым исходным кодом на Go для бизнес-приложений (например, B2B SaaS).
https://github.com/tesseral-labs/tesseral
👉 @juniorGolang
https://github.com/tesseral-labs/tesseral
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎2❤1
JSON Web Tokens in Go
JSON Web Tokens — это хорошо известный и популярный открытый стандарт, который определяет компактный способ безопасной передачи информации между сторонами в виде JSON-объекта.
В этой статье мы углубимся в сам стандарт, чтобы точно понять, как работает JWT. Мы также реализуем безопасный сервер на Go, который сможет выпускать JWT и проверять их. И, наконец, рассмотрим лучшие практики безопасного использования JWT
https://packagemain.tech/p/json-web-tokens-in-go
👉 @juniorGolang
JSON Web Tokens — это хорошо известный и популярный открытый стандарт, который определяет компактный способ безопасной передачи информации между сторонами в виде JSON-объекта.
В этой статье мы углубимся в сам стандарт, чтобы точно понять, как работает JWT. Мы также реализуем безопасный сервер на Go, который сможет выпускать JWT и проверять их. И, наконец, рассмотрим лучшие практики безопасного использования JWT
https://packagemain.tech/p/json-web-tokens-in-go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Ограничение скорости в Go Fiber (Скользящее окно)
Ограничение скорости (rate limiting) — это важный механизм защиты ваших сервисов от злоупотреблений.
Go Fiber предоставляет отличную поддержку middleware, таких как limiter, которые позволяют легко реализовать ограничение скорости.
Вот простой пример с использованием стратегии скользящего окна (sliding window), белого списка IP-адресов (IP whitelisting) и пользовательской функции извлечения ключа (custom key extractor).
👉 @GolangPortal
Ограничение скорости (rate limiting) — это важный механизм защиты ваших сервисов от злоупотреблений.
Go Fiber предоставляет отличную поддержку middleware, таких как limiter, которые позволяют легко реализовать ограничение скорости.
Вот простой пример с использованием стратегии скользящего окна (sliding window), белого списка IP-адресов (IP whitelisting) и пользовательской функции извлечения ключа (custom key extractor).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6
Построение масштабируемых мультиарендных приложений на Go
Статья, описывает стратегии разработки SaaS-приложений с поддержкой мультиарендности на языке Go, основанные на опыте создания бэкенда для Atlas Cloud
https://atlasgo.io/blog/2025/05/26/gophercon-scalable-multi-tenant-apps-in-go
👉 @GolangPortal
Статья, описывает стратегии разработки SaaS-приложений с поддержкой мультиарендности на языке Go, основанные на опыте создания бэкенда для Atlas Cloud
https://atlasgo.io/blog/2025/05/26/gophercon-scalable-multi-tenant-apps-in-go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
if err != nil остаётся с нами
Команда Go официально закрыла тему синтаксического сахара для обработки ошибок:
https://go.dev/blog/error-syntax
👉 @GolangPortal
Команда Go официально закрыла тему синтаксического сахара для обработки ошибок:
https://go.dev/blog/error-syntax
«В обозримом будущем команда Go прекращает работу над синтаксическими изменениями языка, связанными с обработкой ошибок. Мы также закроем все открытые и новые предложения, касающиеся преимущественно синтаксиса обработки ошибок, без дальнейшего рассмотрения.»
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍8❤4👎3🤯3
Полнофункциональная, написанная на чистом Go библиотека для взаимодействия с #Kafka от версии 0.8.0 до 4.0+. Поддерживает продюсирование, потребление, транзакции, администрирование и многое другое
https://github.com/twmb/franz-go
👉 @GolangPortal
https://github.com/twmb/franz-go
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍5❤1
Построение анализатора разделов диска на Go
Задумывались ли вы, что происходит, когда вы запускаете
Прежде чем писать код, нужно понять, что именно мы будем парсить. Каждый диск начинается с таблицы разделов, которая сообщает операционной системе, как диск разбит на части
Читать статью: https://rezmoss.com/blog/disk-partition-analyzer-in-go/
👉 @GolangPortal
Задумывались ли вы, что происходит, когда вы запускаете
fdisk -l или открываете "Управление дисками" в Windows? Эти утилиты считывают необработанные данные с диска, чтобы отобразить информацию о разделах.Прежде чем писать код, нужно понять, что именно мы будем парсить. Каждый диск начинается с таблицы разделов, которая сообщает операционной системе, как диск разбит на части
Читать статью: https://rezmoss.com/blog/disk-partition-analyzer-in-go/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥2
Тестируйте, сообщайте об ошибках https://go.dev/issue/new
Анонс: https://groups.google.com/g/golang-announce/c/dlbl6lgfVX0/m/aD6Br_YFBgAJ
Скачать: https://go.dev/dl/#go1.25rc1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Фреймворк, который позволяет писать логику состояния приложения на чистом Go, с хранением всех данных в памяти или на диске, не беспокоясь о масштабируемости и доступности
https://github.com/evrblk/monstera
👉 @GolangPortal
https://github.com/evrblk/monstera
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4
Вы неправильно используете интерфейсы в Go — архитектурные запахи: неверные абстракции
Интерфейсы играют ключевую роль в архитектуре программного обеспечения. Их сила заключается в способности абстрагировать реализацию.
Одной из часто обсуждаемых тем на собеседованиях у разработчиков являются принципы SOLID. Интерфейсы покрывают большую часть практической реализации этих принципов. Например, чтобы следовать принципу открытости/закрытости или инверсии зависимостей, вам потребуется интерфейс.
Запомните простое правило: если вы хотите скрыть детали реализации от вызывающей стороны (клиента), скорее всего, вы будете использовать интерфейс.
Следовательно, если вы хотите абстрагировать один пакет от другого, интерфейс — подходящий инструмент.
Теперь давайте разберёмся, с какими проблемами использования интерфейсов мы сталкиваемся в Go-приложениях
Читать статью
👉 @GolangPortal
Интерфейсы играют ключевую роль в архитектуре программного обеспечения. Их сила заключается в способности абстрагировать реализацию.
Одной из часто обсуждаемых тем на собеседованиях у разработчиков являются принципы SOLID. Интерфейсы покрывают большую часть практической реализации этих принципов. Например, чтобы следовать принципу открытости/закрытости или инверсии зависимостей, вам потребуется интерфейс.
Запомните простое правило: если вы хотите скрыть детали реализации от вызывающей стороны (клиента), скорее всего, вы будете использовать интерфейс.
Следовательно, если вы хотите абстрагировать один пакет от другого, интерфейс — подходящий инструмент.
Теперь давайте разберёмся, с какими проблемами использования интерфейсов мы сталкиваемся в Go-приложениях
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🌚3
Инструмент наблюдаемости с открытым исходником для разработки на Go
Позволяет в реалтайме искать логи, следить за горутинами, трекать переменные и снимать метрики рантайма — всё, чтобы проще дебажить и понимать, что происходит в вашем приложении.
https://github.com/outrigdev/outrig
👉 @GolangPortal
Позволяет в реалтайме искать логи, следить за горутинами, трекать переменные и снимать метрики рантайма — всё, чтобы проще дебажить и понимать, что происходит в вашем приложении.
https://github.com/outrigdev/outrig
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍3❤2
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