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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #bash
🤔 Как посчитать количество строк в файле?

Для подсчёта строк в файле используйте:
wc -1 file.txt

Эта команда выведет количество строк в файле.

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

Статья, описывает стратегии разработки SaaS-приложений с поддержкой мультиарендности на языке Go, основанные на опыте создания бэкенда для Atlas Cloud
Тык сюда

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😵 franz-go — полнофункциональный клиент Apache Kafka на Go, покрывающий все версии протокола с 0.8.0 до современных. Проект выделяется среди аналогов поддержкой транзакций, Exactly-Once-Semantics и всех механизмов аутентификации.

Инструмент имеет продуманный API с акцентом на идиоматичный Go-код: контексты, variadic-опции и минимум накладных расходов. Здесь нет обёрток над C-библиотеками, а производительность достигается за счёт отказа от лишних горутин там, где это возможно. Для администрирования кластера есть отдельный пакет kadm, а интеграция с прометеем и другими системами мониторинга реализована через хуки.

🤖 GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 Gotd — мощная Go-библиотека для работы с Telegram MTProto API. Проект предлагает низкоуровневый доступ к методам Telegram с полной поддержкой MTProto 2.0, позволяя разработчикам создавать как пользовательских клиентов, так и ботов.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #bash
🤔 Как переместить файлы в Bash?

Чтобы переместить файл, используйте mv :
mv source_file destination_directory/

Команда mv также используется для переименования:
mv old_name.txt new_name.txt


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🤓 jwtk — мощный CLI/TUI‑инструмент для работы с JWT на Go

Нужно быстро декодировать, проверить или сгенерировать JWT‑токен в терминале? Попробуй jwtk от Hanashiko.

Что умеет:
🟠Декодирует JWT с подсветкой
🟠Проверяет подписи (HS256/RS256)
🟠 Генерирует токены с настройкой claims и сроков
🟠Создаёт RSA‑ключи (genkeys)
🟠Имеет удобный TUI‑интерфейс (jwtk tui)

Особенности:
🔵Поддержка файлов (--secret, --keyfile)
🔵Без внешних зависимостей
🔵Поддержка HS256 и RS256

Установка:
1⃣ AUR: yay -S jwtk
2⃣ Из исходников:

git clone https://github.com/Hanashiko/jwtk.git
cd jwtk && go mod tidy && go build -o jwtk
sudo mv jwtk /usr/local/bin


Подходит для:
1⃣ Отладки токенов
2⃣ CI/CD пайплайнов
3⃣ Тестирования API

Лёгкий, но функциональный инструмент без лишних зависимостей.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#новости
😎 Вышел Git 2.50

Вот основные обновления:
1. Новый уровень работы с cruft packs
- Git хранит неиспользуемые (невидимые) объекты в специальных “cruft packs”.
- Раньше управлять ими было сложно: чтобы добавить или объединить объекты, нужно было всё перепаковывать, что занимало много времени и места.
- Теперь появился флаг --combine-cruft-below-size: можно легко объединять мелкие cruft packs в один, постепенно “чистить” репозиторий.
- Исправлена важная ошибка: раньше такие объекты могли случайно удаляться раньше времени — теперь это под контролем.

2. Быстрее для больших репозиториев — многослойные битмапы
- В больших проектах Git создаёт специальные “карты” (bitmaps), чтобы быстро понимать, какие объекты нужны для определённых коммитов.
- Новая версия поддерживает “инкрементальные” битмапы для multi-pack index — можно добавлять новые данные быстро, не пересоздавая всю структуру.

3. Новый движок слияния ORT
- Старый движок recursive полностью удалён: теперь слияния (`merge`) обрабатывает только быстрый и надёжный ORT.
- Это упростит разработку, повысит скорость merge и уменьшит количество ошибок.

4. Улучшения в утилитах и команде cat-file
- Теперь можно фильтровать объекты по типу, например, быстро получить только “деревья” (tree) с помощью --filter='object:type=tree'.
- Команда для удаления reflog стала интуитивной: вместо сложных параметров просто пишем git reflog delete <branch>.

5. Больше контроля над сетевыми соединениями
- Добавлены настройки для TCP Keepalive, теперь можно гибко управлять поведением Git в нестабильных сетях.

6. Меньше Perl — проще тестировать и собирать
- Git ещё больше избавился от зависимостей на Perl: тесты и документация теперь проще и стабильнее, особенно на системах без Perl.

7. Работа с разреженными (sparse) репозиториями стала удобнее
- Команды вроде git add -p теперь не требуют полной загрузки содержимого — удобно при работе с огромными проектами.

8. Косметические улучшения
- При ребейзе (rebase -i) названия коммитов теперь оформляются как комментарии — так ясно, что это просто для ориентира.

9. Быстрее клонируем через bundle-uri
- Git стал лучше справляться с ускоренным клонированием через *.bundle: теперь клиент правильно учитывает все ссылки, ускоряя загрузку репозитория.

Git 2.50 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое.
Почитать про все обновления

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🛞 Outrig — Observability-инструмент для Go

Outrig — это open-source инструмент для разработчиков на Go, позволяющий:

🟠 В реальном времени искать по логам
🟠 Отслеживать goroutines
🟠 Следить за переменными и метриками рантайма

Всё работает локально — никакие данные не покидают вашу машину.

Поддержка: macOS и Linux (Windows — скоро)

Идеален для дебага, мониторинга и глубокого понимания поведения Go-приложений.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как скопировать файлы в Bash?

Чтобы скопировать файл, используйте команду ср :
cp source_file destination_file

Для копирования папки используйте -r :
cp -r source_directory destination_directory


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷‍♂1
#полезное
😘 if err != nil остаётся с нами

Команда Go официально закрыла тему синтаксического сахара для обработки ошибок:
https://go.dev/blog/error-syntax

«В обозримом будущем команда Go прекращает работу над синтаксическими изменениями языка, связанными с обработкой ошибок. Мы также закроем все открытые и новые предложения, касающиеся преимущественно синтаксиса обработки ошибок, без дальнейшего рассмотрения.»


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
#полезное
👍 Gollama — терминальный менеджер для Ollama-моделей. Этот инструмент с TUI-интерфейсом упрощает работу с локальными LLM: от сортировки по размеру и квантованию до редактирования Modelfile прямо в терминале. Горячие клавиши позволяют быстро запускать модели, выгружать их из памяти или копировать на удалённые серверы через функцию "spit".

Инструмент имеет интеграцию с LM Studio для автоматического создания симлинков и расчёт потребления vRAM под разные контексты. Проект активно развивается: недавно добавили поддержку Hugging Face-моделей в калькуляторе памяти.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #bash
🤔 Что означает S? в Bash?

$? содержит код завершения последней команды:
- 0 - успешное выполнение.
- 1 и другие - ошибка.
Пример:
ls / nonexistent_folder
echo $? # Выведет 2 (ошибка)


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😊 konf — простая и гибкая библиотека для работы с конфигурациями в Go!

Она поддерживает загрузку конфигурации из различных источников, включая файлы, переменные окружения, флаги и облачные сервисы (AWS, Azure, GCP). Библиотека позволяет отслеживать изменения конфигураций, а также уведомлять об этих изменениях через нотификаторы. Конфигурационные источники можно легко менять, что делает её удобной для различных приложений, требующих гибкости в настройке.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😬 Построение анализатора разделов диска на Go

Задумывались ли вы, что происходит, когда вы запускаете fdisk -l или открываете "Управление дисками" в Windows? Эти утилиты считывают необработанные данные с диска, чтобы отобразить информацию о разделах.

Прежде чем писать код, нужно понять, что именно мы будем парсить. Каждый диск начинается с таблицы разделов, которая сообщает операционной системе, как диск разбит на части
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😐 Быстрая альтернатива файлообменникам — Gokapi

Gokapi — это минималистичный, self-hosted сервис для временного обмена файлами, написанный на Go. Его цель — быть лёгкой и приватной заменой таким сервисам, как WeTransfer.

Возможности:
🟠 Загрузка и скачивание файлов через веб-интерфейс
🟠 Временное хранение (срок жизни настраивается)
🟠 Одноразовые или многоразовые ссылки
🟠 Поддержка паролей
🟠 Простота установки — бинарник и всё

Без лишнего функционала, без регистрации, без отслеживания — только удобный и быстрый обмен файлами.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #bash
🤔 Разница между одинарными и двойными кавычками в Bash

Одинарные кавычки ' ' предотвращают интерпретацию переменных и команд, а двойные " " позволяют их подставлять.
VAR="world"
echo 'Hello $VAR' # Выведет: Hello $VAR
echo "Hello $VAR" # Выведет: Hello world


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️‍🔥 RuleGo — легковесный rule-движок на Go для гибких систем. Когда бизнес-логика становится слишком сложной для хардкода, а традиционные workflow-движки кажутся громоздкими, этот проект предлагает элегантное решение. Инструмент позволяет описывать правила обработки данных в виде JSON-цепочки с компонентами, которые можно пересобирать на лету без перезапуска приложения.

Проект имеет поддержку edge-вычислений — движок стабильно работает даже на Raspberry Pi с потреблением памяти около 19MB. Встроенные компоненты для HTTP, MQTT и JavaScript-трансформаций делают его идеальным для IoT-сценариев, а визуальный редактор RuleGo-Editor упрощает конфигурирование.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Фреймворк, который позволяет писать логику состояния приложения на чистом Go, с хранением всех данных в памяти или на диске, не беспокоясь о масштабируемости и доступности
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
📞 Вы неправильно используете интерфейсы в Go — архитектурные запахи: неверные абстракции

Интерфейсы играют ключевую роль в архитектуре программного обеспечения. Их сила заключается в способности абстрагировать реализацию.

Одной из часто обсуждаемых тем на собеседованиях у разработчиков являются принципы SOLID. Интерфейсы покрывают большую часть практической реализации этих принципов. Например, чтобы следовать принципу открытости/закрытости или инверсии зависимостей, вам потребуется интерфейс.

Запомните простое правило: если вы хотите скрыть детали реализации от вызывающей стороны (клиента), скорее всего, вы будете использовать интерфейс.

Следовательно, если вы хотите абстрагировать один пакет от другого, интерфейс — подходящий инструмент.

Теперь давайте разберёмся, с какими проблемами использования интерфейсов мы сталкиваемся в Go-приложениях
Читать статью

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