Golang Portal
8.06K subscribers
416 photos
26 videos
7 files
447 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Golang-разработчика

Связь: @devmangx
Download Telegram
Открытое решение для мониторинга событий безопасности во время выполнения и реагирования на инциденты в контейнеризированных средах

GitHub: runtime-radar

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🤔2🔥1😁1
Интересная статья о реализации виртуального списка с переменной высотой строк для UI-библиотеки на Go

https://judi.systems/shirei/blog/virtual-list/

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍2
5 шаблонов проектирования API на Go, которые решают твои самые серьёзные проблемы (2025)

Что если бы ты мог устранить 80% повторяющихся проблем в своих Go-API проектах всего пятью продуманными архитектурными решениями? Давай разберём шаблоны проектирования, которые позволяют это сделать.

Читайте здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94👎2
Go вчера исполнилось 16 лет 🥳🥳

Анализ последнего Developer Ecosystem Survey показывает, как за это время эволюционировали фреймворки, инструменты и практики разработки в экосистеме golang, и в каком направлении язык развивается в 2025 году

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
19🎉11👍4🔥3🏆1
Образы контейнеров FROM scratch стоит ли так делать? 🤔

Довольно часто можно встретить практику, когда статически слинкованный бинарник на Go просто кладут в образ, собранный FROM scratch. Но у такого подхода есть ряд подводных камней:

- нет rootfs-лейаута

- отсутствуют CA-сертификаты

- нет базы данных часовых поясов

Решение? Использовать distroless-базу вместо этого

Подробнее о проблеме и одном из возможных решений:
🔹Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked
🔹What's Inside Distroless Container Images: Taking a Closer Look

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7🔥4👎2
Лог-ориентированная база данных реального времени на Go, реплицирующаяся как шина сообщений для ИИ и периферийных вычислений

GitHub: unisondb

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
Построение конвейера «производитель–потребитель» в Go с использованием горутин и каналов

Статья рассказывает, как с помощью языковых механизмов Go (горутин и каналов) построить конвейер «производитель–потребитель», чтобы параллельно обрабатывать тяжёлые CPU-задачи и при этом безопасно записывать результаты в базу данных без конкуренции за запись

Читайте здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍118🔥2
Веб-инструмент на Go для удобного и уверенного управления конфигурациями Traefik

GitHub: traefikr

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥3
Терминальный клиент для HTTP/GraphQL/gRPC с поддержкой SSH-туннелей, WebSocket, SSE, workflows, профилирования, OpenAPI и сравнения ответов

GitHub: resterm

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🤔1
Интересная статья: «миллионе способов словить data race в Go»

Автор разбирает разные паттерны, на которых легко поймать data race в Go, и даёт практичные советы, как избежать этих проблем в реальном коде

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103
Самостоятельно развёртываемая файловая менеджмент-система на Go с поддержкой нескольких облачных хранилищ

GitHub: cloudreve

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62😁2
Каналы в Go легко использовать неправильно, если не знать правил:

- Отправка в канал вызывает панику, если канал закрыт в любой момент до фактического завершения отправки, даже если закрытие произошло после начала отправки, но до её завершения.

- Чтение из закрытого канала никогда не приводит к панике.

- Закрытие nil-канала или уже закрытого канала вызывает панику.

Эти правила подсказывают простую модель владения:

Сторона, которая “владеет” жизненным циклом канала (обычно отправитель), должна быть единственной, кто имеет право закрывать канал, и должна сделать это ровно один раз, после того как все отправки завершены.

Потребители обычно не должны вызывать close.

Если у вас несколько отправителей, им нужно координироваться так, чтобы только один из них фактически выполнял закрытие. Обычный паттерн - обернуть close(ch) в sync.Once или направить все отправки через одну горутину, которая и становится единственным закрывающим, когда знает, что больше значений не будет.

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍118🔥3
Принято! Go 1.26 введёт метрики по состояниям горутин: выполняются, ожидают, в системных вызовах и т.д.

Разработчики смогут использовать их для раннего выявления проблем без необходимости полной трассировки

Подробнее тут

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍376🔥3
Если вы серьёзно занимаетесь Go, вам нужно подтянуть свой скилл в тестировании.

Эти слайды от со-основателя HashiCorp — одно из лучших материалов для изучения:

https://speakerdeck.com/mitchellh/advanced-testing-with-go

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3👎2
Лёгкое, self-hosted приложение для личных финансов с удобным интерфейсом и мощным функционалом для бухгалтерского учёта.

Бэкенд на Go

GitHub: ezbookkeeping

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍74👀1
Изучите эволюцию стратегий кеширования в разработке ПО, чтобы понять, как разные подходы помогают повысить производительность и снизить задержки в ваших приложениях.

В этой статье – детальное погружение в мир кеширования:
https://maypok86.github.io/otter/blog/cache-evolution/

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥3