Golang Backend | YeaHub
636 subscribers
181 photos
19 videos
1 file
307 links
Теория, подготовка к интервью и курсы для Golang разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
🛞 Outpost — это open-source инструмент, позволяющий принимать вебхуки локально и безопасно проксировать их к вашему приложению.

По сути, это альтернатива таким сервисам, как ngrok, но с упором на работу с вебхуками.

Что делает:
🟠 Принимает вебхуки из внешних сервисов (например, Stripe, GitHub, Twilio и др.).
🟠 Проксирует их к локальному серверу через защищённое соединение.
🟠 Поддерживает надёжную доставку и ретрансляцию, если ваш локальный сервер временно недоступен.
🟠 Работает через Hookdeck Cloud, но может использоваться и в self-hosted сценариях.

Особенности:
🟡 Полностью open-source и легко кастомизируется.
🟡 CLI-утилита для быстрой настройки и мониторинга.
🟡 Удобный лог событий и перехватчики вебхуков для отладки.
🟡 Локальный сервер остаётся закрытым для интернета — только безопасный туннель.

Примеры применения
- Тестирование интеграции с платёжными шлюзами.
- Отладка CI/CD хуков с GitHub или GitLab.
- Разработка приложений, реагирующих на события (реальное время).

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from YeaHub
🥳 В YeaHub теперь 2040 пользователей!

На этой неделе мы побили рекорд по количеству регистраций — и это важный для нас рубеж! 🚀 Мы не останавливаемся на достигнутом и готовим крутые обновления:

- Обновленный лендинг — станет еще информативнее и удобнее;
- Публичные страницы коллекций — делитесь своими подборками с сообществом;
- Избранное для вопросов — сохраняйте самое важное в один клик;
- Горячий режим 🔥 — для дополнительной мотивации;
- Мультипрофили — удобное переключение между аккаунтами;
- Новый сервис "Полезные ресурсы" — всё необходимое для развития в одном месте.

А еще мы будем еженедельно пополнять коллекции актуальными вопросами с собеседований по всем направлениям.

И это только начало! В планах — запуск 20+ новых сервисов для развития, нетворкинга и досуга. Оставайтесь с нами — будет ещё круче! 💪

👍 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
#Собес #kubernetes
🤔 Что такое сервис (Service) в Kubernetes?

Service - это абстракция в Kubernetes, обеспечивающая сетевой доступ к группе Pod-ов. Он распределяет трафик между Pod-ами, поддерживает балансировку нагрузки и позволяет сервисам взаимодействовать внутри и вне кластера.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
#полезное
😊 Дженерики в Go: Ваш дружелюбный гид по повторно используемому коду

В этом гайде рассказывается, что такое дженерики, как их использовать и зачем они нужны
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
#полезное
😎 Линтер для Go, который обеспечивает единообразие стиля кода при использовании log/slog
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😎 Планировщик Go — самый подробный гайд простым языком

Давайте спроектируем с нуля планировщик Go — начнём с самой простой и понятной наивной реализации, а затем шаг за шагом будем разбираться, какие изъяны в ней есть, и придумывать как их решать, постепенно усложняя общую модель.

Это один из лучших способов понять сложную систему или концепцию — пройти путь её поэтапного проектирования. Система сложна, осознать её очень непросто, но мы разобьём её на простые шаги, понять которые очень легко. После этого пазл сам собой сложится в голове, и общая картина системы будет для вас такой же простой и очевидной.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое планировщик (Scheduler) в Kubernetes?

Планировщик (Scheduler) Kubernetes отвечает за назначение Pod-ов на доступные узлы в кластере. Он анализирует ресурсы узлов и выбирает наиболее подходящий вариант.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤓 Go-Package-Manager — легкий менеджер пакетов для Go-проектов без go.mod

Что это такое?
Go-Package-Manager (GPM) — это минималистичный менеджер пакетов для Go, который:
🟠 копирует зависимости напрямую в папку pkg/
🟠 поддерживает установку с GitHub, Gist, Bitbucket и GitLab
🟠 позволяет собирать и запускать проект без конфликта с go.mod

Основные команды:

🟣 gpm get [repo] — загрузка зависимости
🟣 gpm run [main.go] — сборка и запуск проекта
🟣 gpm install — установка всех зависимостей из packages.yaml
🟣 gpm clean — очистка всех пакетов

Пример packages.yaml:

packages:
- github.com/some/package
- gitlab.com/another/dep


Кому будет полезно?
• Новичкам, которые не хотят сразу погружаться в go mod
• Тем, кто работает над однострочными утилитами или экспериментальными скриптами
• Для старых проектов без модулей или в нестандартных окружениях
Репозиторий

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Сигнал SIGHUP для перезагрузки конфигурации

SIGHUP — это сигнал, находящийся на стыке двух миров. Он возник из-за физического «обрыва» соединения с терминалом, и его изначальное значение — потеря управляющего терминала — актуально до сих пор.

Многие приложения, включая приложения на Go (по умолчанию), обрабатывают три сигнала для завершения работы: SIGTERM, SIGINT и SIGHUP. Среди них SIGHUP несет дополнительные нюансы и сегодня может иметь меньшее значение.

По определению:
SIGHUP («signal hang up») — это сигнал, отправляемый процессу при закрытии его управляющего терминала. — Википедия


Но что именно представляет собой «управляющий терминал»?
Читать далее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
👨‍💻 Вышел Pion WebRTC v4.1.0 — стабильная поддержка полного AV1, передача больших сообщений через DataChannels и RTP-пейлоадер для H.265
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое etcd в Kubernetes?

etcd - это распределённое, надёжное хранилище ключ-значение, в котором Kubernetes хранит всю информацию о кластере. Оно гарантирует консистентность данных и обеспечивает отказоустойчивость.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Boulder — реализация ACME-совместимого центра сертификации, автоматически проверяющего владение доменом и выпускающего TLS-сертификаты. Именно на нём работает Let’s Encrypt, бесплатно обеспечивая шифрование для миллионов сайтов.

Проект разделён на компоненты: Web Frontend, Registration Authority, Certificate Authority и другие, что позволяет изолировать критичные части системы. Внутри — строгая логика на основе объектов ACME: аккаунтов, авторизаций и сертификатов. Для связи между модулями используется gRPC, а для разработки — Docker-окружение с полным набором зависимостей.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Jessy — ультрабыстрая JSON-библиотека для Go

Поддержка новых map на базе Swiss Table
Тег omitzero для пропуска нулевых значений
Интерфейсы TextAppender и JsonAppender
Ускоренный Unmarshal через jessy.UnmarshalTrusted
Кастомные энкодеры: AddValueEncoder, AddUnsafeEncoder

Как это работает:
При первом проходе Jessy анализирует тип, и запоминает стек вызовов для каждого поля и всех возможных ветвлений.
Дальнейшая работа — просто прямой маршаллинг из памяти, без лишней логики.

Подходит для high-load систем, realtime-сервисов и микросервисной архитектуры.
Jessy — не просто быстрее. Быстрее всех.

Главное отличие от конкурентов
Поддержка новых версий Go, минимальный overhead, никакой автогенерации и никакого ассемблера.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
🥺 brewkit — инструмент для контейнеризации сборки приложений.

Инструмент основан на движке BuildKit и дополняет его полезными фишками:
🟠 "Агрессивное" кеширование всех этапов сборки;
🟠 Простой формат конфигурации в JSONNET.

Главное преимущество brewkit в том, что сборка полностью независима от платформы и не требует дополнительно устанавливать на хосте все необходимые компиляторы, кодогенераторы, линтеры и т.д., ведь всё подтягивается из Docker-образов.

Проект — open-source разработка компании iSpring, в которой он повсеместно используется для сборки приложений на Go, как локально, так и в CI/CD.

go install github.com/ispringtech/brewkit/cmd/brewkit@latest
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое API Server в Kubernetes?

API Server - это центральный компонент Kubernetes, который обрабатывает команды пользователей и взаимодействует с другими компонентами кластера. Он принимает запросы от kubectl , контроллеров и сервисов, а затем изменяет состояние кластера.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Golang sync.Pool — не серебряная пуля

Когда речь заходит об оптимизации производительности в Go, sync.Pool часто выглядит как заманчивое решение. Он обещает сократить количество аллокаций памяти и снизить нагрузку на сборщик мусора за счёт повторного использования объектов. Но всегда ли это правильный выбор? Давайте углубимся в эту интересную тему.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 NATS.go — клиент для облачного обмена сообщениями на Go. Официальный Go-клиент от команды NATS.io предоставляет простой интерфейс для работы — от базовой pub/sub до персистентных JetStream-сообщений.

Достаточно трёх строк кода, чтобы подписаться на топик и обрабатывать сообщения асинхронно. Клиент поддерживает все фишки NATS: wildcard-подписки, TLS-аутентификацию и даже сервисный API для создания микросервисов.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Stateless Postgres Query Router — это система шардирования для PostgreSQL-кластера, доступная с открытым исходным кодом. Её основной компонент, роутер, анализирует запросы и определяет, на каком конкретном PostgreSQL-кластере следует выполнить транзакцию или запрос.

Ключи шардирования могут передаваться в запросе как явно, так и неявно, в виде комментариев.
В SPQR реализованы функции транзакционного и сессионного пулинга, автобалансировки шардированных таблиц, а также поддержка всех возможных методов аутентификации, сбора статистики и динамической перезагрузки конфигурации.

SPQR поддерживает как запросы к определённому шарду, так и запросы ко всем шардам. В ближайших планах — добавить поддержку двухфазных транзакций и референсных таблиц.

Исходный код SPQR распространяется под лицензией PostgreSQL Global Development Group

Ссылки:
🟠https://github.com/pg-sharding/spqr
🟠https://pg-sharding.tech/

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое управляющая плоскость (Control Plane Kubernetes?

Control Plane - это набор компонентов, которые управляют кластером Kubernetes. В него входят API Server, etcd, Scheduler и Controller Manager. Эти компоненты отвечают за обработку запросов, хранение данных о состоянии кластера, распределение нагрузок и контроль за работой узлов.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 645. Set Mismatch

У вас есть набор целых чисел s, который изначально содержит все числа от 1 до n. К сожалению, из-за какой-то ошибки одно из чисел в s продублировалось в другое число в наборе, что привело к повторению одного числа и потере другого. Вам дан целочисленный массив nums, представляющий состояние данных в этом наборе после ошибки. Найдите число, которое встречается дважды, и число, которое отсутствует, и верните их в виде массива.

Пример:
Input: nums = [1,2,2,4]
Output: [2,3]


👨‍💻 Алгоритм:

1⃣Пройдите по массиву, используя набор для отслеживания чисел, чтобы определить дублированное число.

2⃣Определите отсутствующее число, используя сумму чисел от 1 до n и текущую сумму массива.

3⃣Верните дублированное и отсутствующее числа в виде массива.

😎 Решение:
func findErrorNums(nums []int) []int {
numSet := make(map[int]bool)
duplicate := -1
n := len(nums)
for _, num := range nums {
if numSet[num] {
duplicate = num
}
numSet[num] = true
}
sum := 0
for num := range numSet {
sum += num
}
missing := (n * (n + 1)) / 2 - sum
return []int{duplicate, missing}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 RoadRunner — высокопроизводительный application server на Go. Этот проект заменяет связку Nginx+PHP-FPM, позволяя запускать PSR-7-совместимые приложения с поддержкой HTTP/3, WebSockets и даже Temporal workflow.

Конфигурация через .rr.yaml напоминает docker-compose: можно подключать очереди, кеш и метрики как плагины. Рабочие процессы PHP остаются в памяти, что даёт до 10x прирост скорости против традиционного FPM. Особенно радует встроенная система мониторинга и автоматические рестарты упавших воркеров.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM