YeaHub Tech
476 subscribers
168 photos
15 videos
2 files
200 links
Новые технологии, советы и обучающие материалы

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#backend #grafana #prometheus #nest
📎 Grafana и Prometheus: Инструменты для мониторинга и визуализации данных

👀 Prometheus — это система мониторинга и сбора метрик с открытым исходным кодом. Она была разработана в SoundCloud и сейчас является частью CNCF (Cloud Native Computing Foundation).

Основные особенности:
- Модель сбора данных: Prometheus активно "опрашивает" (scrapes) метрики с заранее настроенных источников.
- Хранилище временных рядов: Все данные сохраняются в виде временных рядов, что позволяет эффективно обрабатывать метрики за определенные интервалы времени.
- Язык запросов PromQL: Удобный язык для работы с метриками, позволяющий фильтровать и агрегировать данные.
- Множество экспортеров: Для интеграции с системами (например, Node Exporter для серверов, Blackbox Exporter для проверки доступности).

Пример использования Prometheus:
- Мониторинг CPU, памяти и дискового пространства серверов.
- Сбор данных о количестве запросов, ошибках и задержках в веб-приложениях.

🖥 Grafana — это инструмент для визуализации данных и построения интерактивных дашбордов. Он поддерживает подключение к различным источникам данных, включая Prometheus, MySQL, Elasticsearch и многие другие.

Основные возможности:
- Визуализация: Создание графиков, таблиц и других визуальных элементов.
- Настраиваемые дашборды: Гибкость в отображении данных для разных целей.
- Алерты: Настройка уведомлений на основе заданных условий.

Grafana используется для:
- Построения дашбордов производительности серверов.
- Отображения состояния приложений и метрик из Prometheus.
- Мониторинга бизнес-показателей в реальном времени.

Как это работает вместе?

Сбор метрик с помощью Prometheus:
- Prometheus периодически собирает данные с источников (например, серверов, баз данных, приложений).
- Эти данные сохраняются в виде временных рядов.

Визуализация в Grafana:
- Grafana подключается к Prometheus как к источнику данных.
- На основе собранных метрик вы создаете дашборды и графики, чтобы видеть общую картину.

🔗 Статья | 👍 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
#graphql #rest #backend

💬 Зачем backend-разработчику знать про REST и GraphQL?

В мире веб-разработки API — это связующее звено между фронтендом и бэкендом. Два популярных подхода для их создания — REST и GraphQL. Разберёмся, что они собой представляют и когда их лучше использовать.


📌 REST

REST (Representational State Transfer) — это архитектурный стиль, который использует HTTP-протокол для обмена данными.
Принципы REST:
- Использование стандартных методов HTTP: GET, POST, PUT, DELETE.
- Структура запросов: /users, /users/1, /posts/2/comments.
- Сервер возвращает фиксированные данные в формате JSON или XML.

Плюсы:
- Простота реализации.
- Огромное сообщество и множество готовых решений.
- Подходит для большинства задач.

Минусы:
- Перегрузка запросов: клиент может получать больше данных, чем нужно.
- Неудобно управлять сложными зависимостями (например, получение связанных данных).


📌 GraphQL

GraphQL — это язык запросов, который позволяет клиенту получать только те данные, которые ему нужны.
Особенности:
- Клиент сам формирует структуру запроса.
- Данные возвращаются ровно в том виде, как запрошено.
- Используется единая точка входа (/graphql).

Плюсы:
- Высокая гибкость: клиент получает только необходимые данные.
- Удобно для приложений с большим количеством взаимосвязанных данных.
- Интерактивные инструменты для работы с API (например, GraphiQL).

Минусы:
- Сложнее настроить: требуется больше времени на проектирование схемы.
- Повышенные требования к серверу: из-за гибкости запросов можно перегрузить систему.


Как выбрать?

- REST хорош для небольших проектов или систем с предсказуемыми запросами.
- GraphQL идеально подходит для сложных приложений с многочисленными связями, особенно в мобильной разработке.

👍 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#backend #frontend #projectmanager #marketing

🛫 Готовь телегу зимой: какие технологии и фреймворки будут актуальны в IT 2025 году

В мире технологий изменения происходят стремительно, и важно быть готовым к будущим трендам. Давайте рассмотрим, какие технологии и направления будут определять IT-ландшафт в 2025 году.


🔵 Бэкенд: Эволюция и трансформация

- В 2025 году ожидается важное событие - выход 25-й версии Java и LTS версии .NET, что принесет новые возможности для разработчиков
- Искусственный интеллект становится неотъемлемой частью инструментария разработчика, внедряясь в тулинг и продукты
- Интересная тенденция - возврат от микросервисной архитектуры к более монолитным приложениям, но на новом технологическом уровне
- Возрастает важность не только технических навыков, но и понимания предметной области - разработчикам необходимо обладать базовым уровнем владения бизнес-инструментарием


🔵 Product Management: Новые горизонты

- Developer Experience становится одним из ключевых направлений, определяющих успех продукта
- Искусственный интеллект активно внедряется в рутинные задачи, значительно повышая эффективность работы команд
- Особое внимание уделяется роли AI Product Manager и развитию культуры предпринимательства внутри команд


🔵 Маркетинг: Эра нейросетей

- Нейросети перестают быть просто инструментом автоматизации и становятся самостоятельным направлением
- Расширяется применение нейросетей как в маркетинговых активностях, так и в разработке продуктов
- Особый интерес вызывает использование нейросетей как инструмента убеждения и автоматизации SEO-процессов


🔵 Фронтенд: Стабильность и инновации

- Продолжается активное развитие основных фреймворков: React, Angular и Vue
- Увеличивается фокус на информационной безопасности и применении ИИ для обработки данных
- Внедрение HTTP/3 и новых технологий оптимизации призвано улучшить скорость загрузки веб-приложений


🔵 Ключевые выводы

- Основные тренды сконцентрированы вокруг Developer Experience, искусственного интеллекта и развития фронтенд-технологий
- Конференция Merge 2024 предоставляет уникальную возможность глубже погрузиться в эти тренды и обменяться опытом с коллегами
- Программа включает более 30 секций и 150 докладов от ведущих экспертов индустрии


🔗 Статья

👉 Новости 👉 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Backend

Как выбрать между SQL и No-SQL решениями?


🔤 Реляционные БД (SQL) — для твёрдых данных:
- Подходят для структурированных данных с фиксированной схемой.
- Обеспечивают высокую согласованность данных.
- Идеальны для финансовых систем и ERP.


🔤 Нереляционные БД (No-SQL) — для текучих данных:
- Поддерживают гибкость в хранении данных и масштабируемость.
- Лучше подходят для данных, структура которых меняется или заранее неизвестна.


Как выбрать?
- Для структурированных и твёрдых данных (финансы) — SQL.
- Для текучих и изменяющихся данных (логи, данные пользователей) — No-SQL.


Согласованность:
- SQL обеспечивают строгую согласованность.
- No-SQL обеспечивают "согласованность в конечном счёте".


Затраты:
- SQL — проверенные технологии с быстрым выводом на рынок.
- No-SQL — могут ускорить разработку, но требуют продуманного проектирования.


Рекомендации:
- Для масштабируемых и гибких данных — No-SQL.
- Для точности и целостности — SQL.


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Backend

Добавление нереляционной MongoDB в кластер Kubernetes


1️⃣ Установка MongoDB в Kubernetes:
- Используется оператор Kubernetes для управления жизненным циклом базы данных.
- Кластер MongoDB создается с помощью манифеста.


2️⃣ Тестирование базы данных:
- Подключаемся через MongoDB Compass.
- Создаём пользователя для приложения и тестируем работу с приложением Spring Boot.


3️⃣ Создание приложения Spring Boot:
- Создаём приложение с зависимостями Spring Web и Spring Data MongoDB.
- Используем Lombok для упрощения кода.
- Разрабатываем сущности и репозитории для работы с MongoDB.


4️⃣ Тестирование приложения:
- Проверка приложения в интегрированной среде разработки.
- Перезагружаем базу данных в кластере Kubernetes.


5️⃣ Развертывание приложения в Kubernetes:
- Создаём jar-файл и Docker-образ.
- Загружаем образ в кластер и запускаем приложение через манифест Deployment.


Заключение:
- MongoDB легко интегрируется с Kubernetes и Spring Boot.
- Важно учитывать безопасность, резервное копирование и отказоустойчивость.


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Frontend #Backend #WebDevelopment #DevOps

#️⃣ Тесты - это не просто дополнительная работа, а важный инструмент разработки, который:

• Делает код более надёжным
• Служит актуальной документацией
• Помогает находить ошибки на ранних этапах


Основные виды тестов:

• Unit-тесты (модульные) - проверяют отдельные функции/модули
• Интеграционные - тестируют взаимодействие компонентов
• E2E (End-to-End) - проверяют работу всего приложения
• Приёмочные - финальная проверка перед релизом


Ключевые преимущества:

• Помогают обнаружить крайние случаи
• Уменьшают количество регрессий
• Дают уверенность при рефакторинге
• Облегчают обновление зависимостей


Когда можно не писать тесты:

• При разработке прототипа
• В краткосрочных проектах, где тесты не успеют окупиться


❗️Издержки:

• Требуют больше времени на старте
• Нужна продуманная структура для тестовых данных
• Необходима настройка CI


Вывод: несмотря на начальные затраты времени, тестирование окупается в долгосрочной перспективе повышением надёжности и облегчением поддержки кода.



🔗 Ссылка

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Backend #Frontend #DevOps

🐱 Backend cheats

По-моему, это самая понятная шпаргалка, которая позиционирует себя, как ориентированная на backend-разработчиков, но мы убеждены, что она будет полезна каждому.

Тонна наглядных примеров, кратких и понятных описаний, ссылок на источники. В общем, очень достойно, советую


🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
#Backend

🎮 Детективная игра для тренировки навыков SQL

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

Если вы только начинаете изучать SQL, рекомендуем пройти пошаговое руководство.


🔗 Пройти ознакомление

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
#Backend

Представьте, что вы можете предсказывать будущее... с помощью кода! Сегодня мы создадим необычный проект – генератор гороскопов на языке программирования Rust.

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

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


Вы узнаете основы работы с Rust, познакомитесь с его уникальной системой типов, научитесь обрабатывать пользовательский ввод и генерировать случайные события. И кто знает – может быть, ваш цифровой астролог окажется точнее традиционных предсказаний? 😁


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32😁1
This media is not supported in your browser
VIEW IN TELEGRAM
#Backend

SQL Practice

Это интерактивная платформа для освоения и совершенствования навыков SQL. Здесь вы решаете реальные задачи по работе с базами данных в удобной онлайн-среде.


Ключевые особенности:

- Обучение через практику — решайте задачи разной сложности
- Мгновенная обратная связь — система сразу проверяет ваши решения
- Реалистичные базы данных — работа с данными, имитирующими реальные сценарии
- Последовательное развитие — от простых запросов к сложным техникам


Как использовать

1. Перейдите на www.sql-practice.com
2. Выберите раздел и сложность
3. Напишите SQL-запрос для решения задачи
4. Получите результат и переходите к следующей задаче


🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
#Backend

📂 DrawDB — это онлайн-редактор диаграмм баз данных и генератор SQL-скриптов, который работает бесплатно

Что умеет:
- Создание ER-диаграмм в браузере
- Автогенерация SQL из диаграмм
- Экспорт в различные форматы
- Настраиваемый интерфейс



📎 Ссылка

🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Backend

💌 BFF - Backend For Frontend: персональный бэкенд для каждого клиента

Представьте: у вас мобильное приложение, веб-версия и умные устройства. Каждый клиент нуждается в разных данных, но все обращаются к одному API. Получается каша из избыточных запросов и костылей. BFF решает эту проблему элегантно.

©️Что такое BFF

Backend For Frontend - это отдельный бэкенд для каждого типа клиента. Мобилке нужны сжатые данные? Есть мобильный BFF. Веб-приложению требуется детальная информация? Отдельный веб-BFF. Каждый получает ровно то, что нужно.


©️Как работает

• Клиент отправляет запрос в свой BFF
• BFF собирает данные из микросервисов
• Преобразует их в нужный формат
• Возвращает оптимизированный ответ


©️Традиционный подход vs BFF

Раньше: один API-шлюз для всех клиентов. Результат - over-fetching (слишком много данных) или under-fetching (слишком мало, нужны дополнительные запросы).

С BFF: каждый клиент получает персонализированный API, заточенный под его потребности.


©️Главные преимущества

Оптимизация под клиента - мобилка получает легкие данные, десктоп - полные
Лучшая производительность - меньше лишних запросов и данных
Независимая разработка - команды не мешают друг другу
Упрощение клиентской логики - вся оркестрация на стороне BFF
Безопасность - контроль доступа на уровне BFF


©️Когда использовать

- Мультиплатформенные приложения (веб + мобайл + IoT)
- Микросервисная архитектура с множеством сервисов
- Миграция с legacy-систем
- Разные требования к производительности у клиентов


©️Подводные камни

- Больше сервисов = больше сложности в поддержке
- Риск дублирования логики между BFF
- Потенциальные узкие места производительности
- Проблемы с консистентностью данных


©️Успешные примеры

Netflix - разные BFF для мобильных и десктопных клиентов. Мобилка получает упрощенные данные, десктоп - детальную информацию.

Spotify - оптимизированные данные для телефонов, планшетов и умных колонок обеспечивают быстрое воспроизведение.

Лучшие практики

• Минимум бизнес-логики в BFF - только оркестрация
• Активное кеширование для мобильных клиентов
• Централизованная обработка ошибок
• Строгая безопасность на уровне BFF


BFF - это не просто модная архитектура, а решение реальной проблемы. Когда у вас несколько типов клиентов с разными потребностями, BFF обеспечивает каждому персональный сервис вместо универсального "одного размера для всех".


🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#Backend

💬 Как сэкономить 100 часов в месяц ?

Устали бороться с дублями в данных? Тратите часы на группировку по датам? Мучаетесь с обновлением таблиц в ETL?

Опытный дата-инженер за 8 лет работы собрал 6 малоизвестных техник SQL, которые решают эти проблемы одним запросом.

1️⃣Находить и удалять дубли
2️⃣Получать свежие данные
3️⃣Группировать по периодам
4️⃣Создавать кастомные категории
5️⃣Сравнивать данные между датами
6️⃣Обновлять таблицы без боли


📎 Статья

🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Backend

📎 Как веб-серверы обрабатывают запросы: полный разбор

Когда вы нажимаете "Отправить" в браузере, за долю секунды происходит настоящая магия. Ваш запрос проходит сложный путь от клиента до сервера, и большинство разработчиков даже не подозревают, какая механика скрывается за простым app.listen(8000).


Почему это важно знать?

В AWS часто сталкиваешься с ситуациями, когда запросы "исчезают" по пути к серверу. Понимание сетевого стека помогает быстро найти проблему там, где другие разводят руками.


Анатомия сетевого соединения

Все начинается с сокетов — абстракции, которая скрывает сложность TCP/UDP протоколов. Каждый сокет определяется четырьмя параметрами:
- IP источника + порт источника
- IP назначения + порт назначения


Когда сервер запускается, он выполняет последовательность системных вызовов:

1. socket() — создает сокет-дескриптор
2. bind() — привязывает к IP и порту
3. listen() — помечает как слушающий
4. accept() — принимает входящие соединения


Путь HTTP-запроса: 6 ключевых этапов

1. TCP-квитирование
Классическая тройка: SYN → SYN-ACK → ACK. Только после этого данные могут течь.

2. TLS-квитирование (для HTTPS)
Клиент и сервер договариваются о шифрах и обмениваются ключами. Вся дальнейшая передача зашифрована.

3. Чтение из буфера
Запрос попадает в приемный буфер ядра. Приложение вызывает read() или recv(), чтобы переместить данные в пользовательское пространство.

4. Расшифровка
Если включен TLS, данные расшифровываются сессионными ключами. Часто это делает балансировщик нагрузки (TLS-терминация).

5. Парсинг протокола
Поток байтов превращается в понятный HTTP-запрос: метод, заголовки, URI, тело запроса.

6. Декодирование payload
JSON, Protobuf или другой формат превращается в объекты языка программирования.


Практическая польза

Знание этих процессов помогает:
- Оптимизировать производительность (понимать, где узкие места)
- Диагностировать сетевые проблемы
- Грамотно настраивать балансировщики и прокси
- Отвечать на вопросы о масштабировании


📎 Ссылка

🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Backend

🔖Реактивное программирование vs сопрограммы: что выбрать для высокой нагрузки?

В эпоху микросервисов приложения обрабатывают десятки тысяч запросов одновременно. Привычная модель "один поток на запрос" больше не работает — потоки занимают 128-256 КБ памяти каждый, и ресурсы быстро заканчиваются.

Два основных подхода решают эту проблему: реактивное программирование и сопрограммы.


📎 Реактивное программирование

Использует асинхронные функциональные цепочки с операторами типа flatMap, switchIfEmpty, onErrorResume.

Плюсы:
• Высокая эффективность
• Мощные операторы для работы с потоками данных

Минусы:
• Сложность в понимании и отладке
• Любая обработка ошибок превращается в цепочку реактивных операторов
• Пример простого добавления персонажа в Spring WebFlux занимает несколько строк с filter, flatMap и обработкой исключений через Mono.error


📎 Сопрограммы (Coroutines)

Позволяют писать асинхронный код в привычном императивном стиле.

Плюсы:
• Функции помечаются как suspend, но выглядят как обычный последовательный код
• Можно использовать знакомые конструкции: try-catch, if-else
• Тот же функционал добавления персонажа реализуется простым if и оператором ?.let

Минусы:
• Требует изучения концепций приостановки и возобновления


📎 Главное различие

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

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


Производительность
Обе концепции показывают сопоставимую производительность — обе минимизируют использование потоков и эффективно масштабируются.


📎 Статья

🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2