В Go функции формата
✅ Тесты проверяют работу кода, сравнивая вывод.
📖 godocs встраивают исполняемые примеры, упрощая разработчикам старт.
👉 @GolangPortal
ExampleXxx
одновременно служат и документацией, и тестами.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4
Библиотека для создания отказоустойчивых и надежных Go-приложений. Она работает за счёт обёртки функций одним или несколькими политикам устойчивости, которые можно комбинировать и компоновать по мере необходимости.
GitHub: failsafe-go
👉 @GolangPortal
GitHub: failsafe-go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1
Есть два способа создавать пути в Go, в зависимости от ваших задач
- Собираете путь к файлу в Go?
Используйте
- Собираете путь, разделённый слешами, например URL?
Используйте
На Unix-подобной ОС они могут выглядеть одинаково, но в среде Windows будут вести себя по-разному
👉 @GolangPortal
- Собираете путь к файлу в Go?
Используйте
filepath.Join
из пакета path/filepath
, чтобы получить разделители, зависящие от ОС.- Собираете путь, разделённый слешами, например URL?
Используйте
path.Join
из пакета path
, чтобы получить одинаковый результат вне зависимости от ОС.На Unix-подобной ОС они могут выглядеть одинаково, но в среде Windows будут вести себя по-разному
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7
Wireshark на Go для ваших Docker-контейнеров. Позволяет разработчикам видеть все входящие и исходящие запросы на их бэкенд-сервере, чтобы быстрее решать проблемы в продакшене
GitHub: subtrace
👉 @GolangPortal
GitHub: subtrace
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5
Graceful Shutdown в HTTP-серверах на Go: как обеспечить нулевой простой для живого трафик
Читать здесь
👉 @GolangPortal
Читать здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Прокачай базовые навыки работы с Kubernetes
Вот практическое задание, которое проведёт тебя через весь жизненный цикл Pod’а — от его создания до инспектирования, выполнения команд внутри, просмотра логов и удаления.
Это отличный способ потренироваться, если ты только начинаешь работать с Kubernetes или хочешь увереннее чувствовать себя при работе с
Попробуй здесь:
https://labs.iximiuz.com/challenges/kubernetes-pod-fundamentals-ad0b10b3
👉 @GolangPortal
Вот практическое задание, которое проведёт тебя через весь жизненный цикл Pod’а — от его создания до инспектирования, выполнения команд внутри, просмотра логов и удаления.
Это отличный способ потренироваться, если ты только начинаешь работать с Kubernetes или хочешь увереннее чувствовать себя при работе с
kubectl
.Попробуй здесь:
https://labs.iximiuz.com/challenges/kubernetes-pod-fundamentals-ad0b10b3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5
SSH-туннели без лишней боли: поднимай и мониторь SSH-туннели из одного YAML-конфига, используя текущую настройку OpenSSH
GitHub: tunn
👉 @GolangPortal
GitHub: tunn
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4
Пользователи Kupikod Premium уже даже не вспоминают это слово, потому что пополняют Steam БЕЗ комиссии, то есть 1к1, рубль в рубль:
Заплатил 1000 рублей — получишь на баланс тоже 1000 рублей
Подготовься к осенней распродаже Steam как следует — oформляй Kupikod Premium и забудь про слово комиссия вообще!
Please open Telegram to view this post
VIEW IN TELEGRAM
👎13🤔3👍2❤1
Тип Context в Go можно использовать для создания таймаутов. Это удобно, когда нужно задать лимит времени для любой функции, принимающей контекст
Пример: мы можем отменить веб-запрос, если он выполняется слишком долго, чтобы код не ждал дольше, чем нам нужно
👉 @GolangPortal
Пример: мы можем отменить веб-запрос, если он выполняется слишком долго, чтобы код не ждал дольше, чем нам нужно
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🌚1
Библиотека Go для создания таблиц с форматированным текстом в ASCII, Unicode, Markdown, HTML и раскрашенных терминалах. Отлично подходит для CLI-утилит, логов и веб-приложений.
GitHub: tablewriter
👉 @GolangPortal
GitHub: tablewriter
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте деплойменты в Kubernetes
Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы: от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.
Отлично подходит для практики реальных операций, стоящих за
Попробуйте здесь
👉 @GolangPortal
Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы: от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.
Отлично подходит для практики реальных операций, стоящих за
kubectl apply/create
и kubectl
rollout
.Попробуйте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
На GitHub есть репозиторий free-programming-books, где собрано более 4000 бесплатных книг, 2000 курсов и других полезных ресурсов по программированию
Для удобства поиска можно использовать этот инструмент
Этот проект - яркий пример силы опенсорс сообщества, который из клона списка со StackOverflow стал одним из самых популярных на GitHub✌️
🔹 Русскоязычная версия ресурсов
👉 @GolangPortal
Для удобства поиска можно использовать этот инструмент
Этот проект - яркий пример силы опенсорс сообщества, который из клона списка со StackOverflow стал одним из самых популярных на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2🔥2
Серия обучающих статей по программированию на Go для сисадминов, девопсов и безопасников
https://www.gomonk.net/
👉 @GolangPortal
https://www.gomonk.net/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👎1
Рассмотрите возможность использовать
✅ Работают даже если из канала никто не читает.
✅ Позволяют нескольким получателям отслеживать завершение
👉 @GolangPortal
close()
для канала или sync.WaitGroup
для сигнализации о завершении горутины. Оба подхода:Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Начиная с Go 1.26 можно передавать выражение в
До Go 1.26 можно было делать только
Новое поведение
Но есть 3 нюанса:
1. Если
2.
3. Нетипизированные константы сначала получают тип по умолчанию:
👉 @GolangPortal | #tip by Phuong Le
new()
, чтобы напрямую получить указатель на результат этого выражения.До Go 1.26 можно было делать только
new(Type)
, чтобы получить указатель на нулевое значение этого типа.Новое поведение
new(expr)
— это синтаксический сахар для:tmp := expr
result := &tmp
Но есть 3 нюанса:
1. Если
expr
уже является указателем, то new(expr)
вернёт указатель на этот указатель.new(bytes.NewBuffer(nil)) → **bytes.Buffer
2.
new(expr)
копирует значение expr
во вновь созданную переменную.i := 1
p := new(i)
i = 2 // → *p всё ещё равно 1
3. Нетипизированные константы сначала получают тип по умолчанию:
new(123) → *int
new(1.2) → *float64
new('a') → *rune
new(nil)
— невалидно.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2🤔1
Высокопроизводительный сервис преобразования изображений, написанный на Go, предоставляющий URL-ориентированный API для обработки изображений в реальном времени. Опенсорсная альтернатива Cloudflare Images и ImageKit.
GitHub: kriti-images
👉 @GolangPortal
GitHub: kriti-images
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🤔2
Хотели ли вы когда-нибудь одновременно сохранить вывод команды и при этом стримить его в stdout/err текущего процесса в Go?
Для этого идеально подходит утилита
Подробнее о приёме тут
👉 @GolangPortal
Для этого идеально подходит утилита
io.MultiWriter()
! Очень полезная штука для CLI и системного программирования.Подробнее о приёме тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤6🔥2
Redis 101: взгляд новичка
Вводный обзор того, что такое Redis, почему он так быстр (за счёт работы в памяти, однопоточного исполнения и оптимальных структур данных) и как его можно использовать не только как кэш, но и как базу данных, брокер сообщений и rate-лимитер
https://mrinalxdev.github.io/mrinalxblogs/blogs/redis.html
👉 @GolangPortal
Вводный обзор того, что такое Redis, почему он так быстр (за счёт работы в памяти, однопоточного исполнения и оптимальных структур данных) и как его можно использовать не только как кэш, но и как базу данных, брокер сообщений и rate-лимитер
https://mrinalxdev.github.io/mrinalxblogs/blogs/redis.html
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4👀1