Java Backend | YeaHub
675 subscribers
159 photos
23 videos
2 files
291 links
Теория, подготовка к интервью и курсы для Java разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😎 Динамические прокси для логирования в стиле AOP

Используй java.lang.reflect.Proxy, чтобы перехватывать вызовы методов на этапе выполнения.
Это позволяет эмулировать AOP без Spring — идеально подходит для обработки сквозной логики (cross-cutting concerns).

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

> Динамические прокси позволяют внедрять поведение — например, логирование, тайминг или проверку безопасности — без изменений исходного кода.

Этот паттерн активно используется во фреймворках вроде Spring и Hibernate.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤓 Конкурентность vs параллелизм - это НЕ одно и то же

Конкурентность:

Конкурентность означает, что приложение продвигается по нескольким задачам одновременно.

Хотя один CPU-ядро может обрабатывать только одну задачу за раз, оно достигает конкурентности, быстро переключаясь между задачами.

Пример: Слушание музыки во время написания кода. CPU быстро переключается между этими задачами так эффективно, что кажется, будто обе выполняются одновременно.

Основная цель конкурентности — максимизировать использование процессора, минимизируя время простоя.

Параллелизм:

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

Для достижения параллелизма задачи разбиваются на более мелкие независимые подзадачи и обрабатываются одновременно на нескольких процессорах, ядрах или GPU.

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

Цель параллелизма — ускорить обработку, выполняя несколько задач одновременно.

Они не являются взаимно исключающимися:

🟠Можно иметь конкурентность без параллелизма.
🟠Можно иметь параллелизм без конкурентности.
🟠Или можно использовать и то, и другое для высокопроизводительных систем.

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

Istio - это service mesh, который управляет сетевым взаимодействием сервисов внутри Kubernetes. Он позволяет контролировать трафик, настраивать балансировку нагрузки, управлять безопасностью (аутентификацией и авторизацией) и обеспечивать мониторинг сетевых взаимодействий между микросервисами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Функциональное программирование в Java с использованием Streams и лямбд:

Streams обрабатывают фильтрацию, сортировку и свёртку данных, а лямбды упрощают определение функций. В Spring они используются для построения реактивных API, а в задачах алгоритмического программирования — для оптимизации обработки данных.

Выше приведён пример REST-эндпойнта на Spring, фильтрующего пользователей, и функции в стиле олимпиадного программирования для поиска лидеров по очкам.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
😴 Телеграфируем кодом Морзе через Java Stream API

В статье автор показывает, как на Java с помощью Stream API и без сторонних библиотек собрать телеграф: от загрузки таблицы Морзе до генерации аналогового аудиосигнала.

Под капотом — mapMulti, кастомный Collector, аудио через javax.sound, а в качестве вывода — настоящее «пип-пип» из динамика.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
😵‍💫 Циклические зависимости в Spring: как находить и устранять

Если в вашем проекте внезапно Spring ругается на circular dependency, вы не одиноки — такие ошибки возникают даже в продуманных архитектурах.

В статье разобраны причины появления циклических зависимостей, показано, как их отследить с помощью Bean Navigation, и даны рабочие способы решения проблемы.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🖥 Middle Java Backend-разработчик в компанию IT-smart.

Техническое собеседование. Осень 2024. Просил 250к+. Опыт в резюме 3 года. Сначала были вопросы по опыту работы, воркфлоу, гитфлоу

Вопросы:
- Какие аннотации используются для создания бинов и компонентов в Spring?
- Когда создаётся Spring Bean и как Spring определяет необходимость его создания?
- Что делают аннотации @Transactional и @Retryable?
- Что такое брокер сообщений?
- Почему не все компании переходят на микросервисы?
- Когда может потребоваться переход от микросервисов к монолиту?
- Как микросервисы взаимодействуют друг с другом?
- Почему некоторые задачи лучше выполнять асинхронно?
- Что лучше: микросервисы или монолит?
- Когда нужно использовать кэширование?
- Когда использовать локальный кэш, а когда распределённый?
- Что такое распределённый кэш?
- Что такое реляционная база данных?
- Что такое первичный ключ?
- Что означает ACID?
- Что такое PostgreSQL?
- Что такое высокая и низкая селективность?
- Когда использование индексов неэффективно?
- Как работают некластеризованные индексы?
- Индексируется ли первичный ключ?
- Что такое микросервисная архитектура?
- Что такое Bean?
- Разница между Spring и Spring Boot

Все вопросы можно посмотреть на нашей платформе

#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
1