Библиотека
https://www.calhoun.io/simpler-faster-concurrent-testing-with-synctest/
👉 @GolangPortal
testing/synctest — отличное решение, которое упрощает тесты в golang, связанные с временем или конкурентным кодом. Если у вас есть тесты, которые ведут себя нестабильно из-за использования time.Now(), таймаутов или интервалов, обязательно обратите внимание на synctest.https://www.calhoun.io/simpler-faster-concurrent-testing-with-synctest/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Что нового в Go 1.25? Разбор с примерами
https://www.freecodecamp.org/news/what-is-new-in-go/
👉 @GolangPortal
https://www.freecodecamp.org/news/what-is-new-in-go/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
Паттерн or-channel в Go — мощный паттерн конкурентности, используемый для объединения нескольких каналов
👉 @GolangPortal
done в один. Этот новый канал закрывается, как только закрывается любой из входных каналов, фактически выступая единым сигналом завершения или отменыPlease open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
Создание структуры Go из XML-документа. Полученная структура лучше всего подходит для чтения XML
https://github.com/miku/zek
👉 @GolangPortal
https://github.com/miku/zek
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
«Новый экспериментальный Go API для работы с JSON» от Joe Tsai, Daniel Martí, Johan Brandhorst-Satzkorn, Roger Peppe, Chris Hines и Damien Neil
Этот пост посвящён новым экспериментальным пакетам Go 1.25:
Читать: https://go.dev/blog/jsonv2-exp
👉 @GolangPortal
Этот пост посвящён новым экспериментальным пакетам Go 1.25:
encoding/json/v2 и encoding/json/jsontext, которые приносят долгожданные улучшения и исправленияЧитать: https://go.dev/blog/jsonv2-exp
Please open Telegram to view this post
VIEW IN TELEGRAM
go.dev
A new experimental Go API for JSON - The Go Programming Language
Go 1.25 introduces experimental support for encoding/json/jsontext and encoding/json/v2 packages.
❤2👍2
Используете
👉 @GolangPortal
sync.WaitGroup в коде на Go, чтобы отслеживать завершение горутин? Избегайте распространённой ошибки: вызова Add внутри самой горутины. В Go 1.25 для этого даже добавили проверку в go vet, а также вспомогательную функцию WaitGroup.Go, чтобы помочь избежать этой проблемыPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5
Задача на собеседовании по Go:
Обработать 5 элементов массива, используя максимум 3 горутины.
Мой подход:
- Паттерн Worker Pool.
Но есть ли способ попроще?🤔
👉 @GolangPortal
Обработать 5 элементов массива, используя максимум 3 горутины.
Мой подход:
- Паттерн Worker Pool.
Но есть ли способ попроще?
Что такое worker pool?
В общем случае worker pool — это набор потоков, ожидающих назначения задач.
Как только назначенная задача завершена, один из потоков снова становится доступен для следующей задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
Интересная статья: Как реализовать кеш в Golang API
В этой статье разберём, что такое кеширование, зачем оно нужно, какие существуют стратегии кеширования и как реализовать кеширующий слой в наших Golang API
Читаем здесь
👉 @GolangPortal
В этой статье разберём, что такое кеширование, зачем оно нужно, какие существуют стратегии кеширования и как реализовать кеширующий слой в наших Golang API
Читаем здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Фреймворк на Go на базе LLM для глубокого понимания документов, семантического поиска и контекстно-зависимых ответов с использованием парадигмы RAG.
GitHub: WeKnora
👉 @GolangPortal
GitHub: WeKnora
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4
Начни работу с Docker на практике
Вот подборка годных практических заданий:
👉 @GolangPortal
Вот подборка годных практических заданий:
Установи Docker Engine на Linux: https://labs.iximiuz.com/challenges/docker-install-on-ubuntu
Запусти свои первые контейнеры: https://labs.iximiuz.com/challenges/docker-101-container-run
Собери и опубликуй свои первые образы: https://labs.iximiuz.com/challenges/build-and-publish-container-image-with-docker
Перемещай образы между репозиториями: https://labs.iximiuz.com/challenges/copy-container-image-from-one-repository-to-another-with-docker
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3
Forwarded from IT Portal
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня отмечается День программиста!
256-й день года выбран не случайно:
С праздником, коллеги!☺️
@IT_Portal
256-й день года выбран не случайно:
Дата праздника объясняется расчетом: 2 (двоичная система исчисления) в степени 8 (количество битов в байте). То есть 2^8= 256. Поэтому в обычный год день программиста 13 сентября, а в високосный — 12 сентября
С праздником, коллеги!
@IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤10
В Go-тестах помечайте хелпер-функции вроде
Это заставляет тулчейн Go указывать на строку, где была вызвана функция, а не на строку внутри самой хелпера, что упрощает отладку упавших тестов
👉 @GolangPortal
assertEquals и doRequest с помощью t.Helper()Это заставляет тулчейн Go указывать на строку, где была вызвана функция, а не на строку внутри самой хелпера, что упрощает отладку упавших тестов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤6
Как собрать продакшн-готовый образ контейнера для Go-приложения
Достаточно ли тебе
👉 @GolangPortal
Достаточно ли тебе
FROM scratch? Посмотри эти практические задания, чтобы разобраться с типичными проблемами контейнеризации Go:- Cтатическая линковка: https://labs.iximiuz.com/challenges/dockerize-golang-application-static-linking
- Динамическая линковка https://labs.iximiuz.com/challenges/dockerize-golang-application-dynamic-linking
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍6
Создание простой виртуальной машины на Go
В этой статье процесс реализации VM на Go, которая работает с компилированным байткодом и обрабатывает базовые арифметические операции
🔹 Читать
👉 @GolangPortal
В этой статье процесс реализации VM на Go, которая работает с компилированным байткодом и обрабатывает базовые арифметические операции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2🤔1
CLI-утилита на Go, которая привносит в Postgres декларативный workflow миграций схемы в стиле terraform
GitHub: pgschema
👉 @GolangPortal
GitHub: pgschema
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3🤔1🤯1
Docker 101: Передача переменных окружения в контейнеры
Приложения часто используют переменные окружения для настройки конфигурации. Однако контейнеризированные приложения работают в изолированной среде выполнения (в этом и суть контейнеров). Поэтому переменные окружения хост-системы по умолчанию им недоступны — это сделано намеренно.
Попрактикуйтесь в передаче переменных окружения в контейнеризированные приложения в рамках этого задания Docker 101: здесь
👉 @GolangPortal
Приложения часто используют переменные окружения для настройки конфигурации. Однако контейнеризированные приложения работают в изолированной среде выполнения (в этом и суть контейнеров). Поэтому переменные окружения хост-системы по умолчанию им недоступны — это сделано намеренно.
Попрактикуйтесь в передаче переменных окружения в контейнеризированные приложения в рамках этого задания Docker 101: здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1
Хорошая статья: «Memory Allocation in Go»
В этой статье подробно разберём аллокатор памяти в Go. Посмотрим на его основные компоненты, на то, как они взаимодействуют при обслуживании аллокаций разного размера, а также как вместе с объектами в куче управляются стеки
👉 @GolangPortal
В этой статье подробно разберём аллокатор памяти в Go. Посмотрим на его основные компоненты, на то, как они взаимодействуют при обслуживании аллокаций разного размера, а также как вместе с объектами в куче управляются стеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍6
Знали ли вы, что пакет Go
Это один из дефолтов, предложенных к изменению в новом пакете
👉 @GolangPortal
encoding/json не чувствителен к регистру при парсинге ключей JSON?Это один из дефолтов, предложенных к изменению в новом пакете
json/v2.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤯6❤3👎1
В 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