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

Связь: @devmangx
Download Telegram
Ключевое слово range в Go невероятно универсально. Его можно использовать для итерации по слайсам, мапам, и, хотя мне это не особо нравится, его также можно применять с одним целым числом, чтобы создать цикл for, который выполнится заданное количество раз.

А вы знали, что его можно использовать и для итерации по каналу, при этом выполнение остановится, когда канал будет закрыт?

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117
Кроссплатформенный SQL-редактор, доступный прямо из браузера и работающий как HTTP-сервер на Go. Предоставляет удобный интерфейс для лёгких ETL-задач, позволяя копировать данные между базами данных, таблицами, JSON и CSV-файлами

https://github.com/a-le/db-portal

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥2
time.Ticker в Go — это отличный инструмент для запуска одного и того же кода через заданные интервалы. Например, его можно использовать, чтобы каждые 5 минут проверять состояние сервера и отправлять уведомление, если с ним возникли проблемы.

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍6
Избегаем распространённых ошибок с sync.WaitGroup в Go

С выходом Go 1.25 в типе sync.WaitGroup появилось два заметных изменения. Оба они связаны с типичными ошибками, которые разработчики часто допускают при работе с WaitGroup.

В этой статье мы разберём эти изменения и посмотрим, как они помогают избежать распространённой гонки

🔹Читать

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
Библиотека testing/synctest — отличное решение, которое упрощает тесты в golang, связанные с временем или конкурентным кодом. Если у вас есть тесты, которые ведут себя нестабильно из-за использования time.Now(), таймаутов или интервалов, обязательно обратите внимание на synctest.

https://www.calhoun.io/simpler-faster-concurrent-testing-with-synctest/

👉 @GolangPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍5
Паттерн or-channel в Go — мощный паттерн конкурентности, используемый для объединения нескольких каналов done в один. Этот новый канал закрывается, как только закрывается любой из входных каналов, фактически выступая единым сигналом завершения или отмены

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123
Создание структуры Go из XML-документа. Полученная структура лучше всего подходит для чтения XML

https://github.com/miku/zek

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73
«Новый экспериментальный Go API для работы с JSON» от Joe Tsai, Daniel Martí, Johan Brandhorst-Satzkorn, Roger Peppe, Chris Hines и Damien Neil

Этот пост посвящён новым экспериментальным пакетам Go 1.25: encoding/json/v2 и encoding/json/jsontext, которые приносят долгожданные улучшения и исправления

Читать: https://go.dev/blog/jsonv2-exp

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Используете sync.WaitGroup в коде на Go, чтобы отслеживать завершение горутин? Избегайте распространённой ошибки: вызова Add внутри самой горутины. В Go 1.25 для этого даже добавили проверку в go vet, а также вспомогательную функцию WaitGroup.Go, чтобы помочь избежать этой проблемы

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115
Задача на собеседовании по Go:

Обработать 5 элементов массива, используя максимум 3 горутины.
Мой подход:

- Паттерн Worker Pool.

Но есть ли способ попроще? 🤔

Что такое worker pool?
В общем случае worker pool — это набор потоков, ожидающих назначения задач.
Как только назначенная задача завершена, один из потоков снова становится доступен для следующей задачи.


👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3
Интересная статья: Как реализовать кеш в Golang API

В этой статье разберём, что такое кеширование, зачем оно нужно, какие существуют стратегии кеширования и как реализовать кеширующий слой в наших Golang API

Читаем здесь

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Фреймворк на Go на базе LLM для глубокого понимания документов, семантического поиска и контекстно-зависимых ответов с использованием парадигмы RAG.

GitHub: WeKnora

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
Начни работу с Docker на практике

Вот подборка годных практических заданий:

Установи 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


👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Forwarded from IT Portal
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня отмечается День программиста!

256-й день года выбран не случайно:
Дата праздника объясняется расчетом: 2 (двоичная система исчисления) в степени 8 (количество битов в байте). То есть 2^8= 256. Поэтому в обычный год день программиста 13 сентября, а в високосный — 12 сентября


С праздником, коллеги! ☺️

@IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2010
В Go-тестах помечайте хелпер-функции вроде assertEquals и doRequest с помощью t.Helper()

Это заставляет тулчейн Go указывать на строку, где была вызвана функция, а не на строку внутри самой хелпера, что упрощает отладку упавших тестов

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍186
Как собрать продакшн-готовый образ контейнера для Go-приложения

Достаточно ли тебе FROM scratch? Посмотри эти практические задания, чтобы разобраться с типичными проблемами контейнеризации Go:

- Cтатическая линковка: https://labs.iximiuz.com/challenges/dockerize-golang-application-static-linking

- Динамическая линковка https://labs.iximiuz.com/challenges/dockerize-golang-application-dynamic-linking


👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6
Создание простой виртуальной машины на Go

В этой статье процесс реализации VM на Go, которая работает с компилированным байткодом и обрабатывает базовые арифметические операции

🔹Читать

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2🤔1
CLI-утилита на Go, которая привносит в Postgres декларативный workflow миграций схемы в стиле terraform

GitHub: pgschema

👉 @GolangPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3🤔1🤯1