Java Backend | YeaHub
759 subscribers
182 photos
26 videos
3 files
331 links
Теория, подготовка к интервью и курсы для Java разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
🖥 Middle Java Backend-разработчик в компанию Demius.

Техническое собеседование. Зима 2025. Просил 250к+. Проект: несколько команд на выбор - обработка транзакций на зачисление и списание. Опыт в резюме 3 года. Сначала были вопросы по текущему месту работы: стек, архитектура, что за проект.

Вопросы:
- В чём разница между git rebase и git merge?
- Как протестировать сервис, который обращается к базе и внешним системам?
- Какие фреймворки используются для тестирования на Java?
- Как сделать кОллекцию потокобезопасной?

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

#собес #коллеции
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#Собес #git
🤔 Что такое команды git reset -mixed и git merge - abort?

💬 Кратко:
git reset --mixed : отменяет изменения, которые были добавлены в индекс, но сохраняет изменения в рабочем каталоге.
git merge --abort : отменяет слияние, которое в данный момент находится в процессе, и возвращает репозиторий в состояние до начала слияния.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Вкратце как работает аутентификация через куки, сессии, токены, JWT, SSO и OAuth2

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Научись создавать проекты с нуля на любом языке программирования

Репо: https://github.com/practical-tutorials/project-based-learning

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #git
🤔 Как вы находите коммит, который что-то нарушил после операции слияния?

💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Ресурс для разработчиков, чтобы создавать изометрические диаграммы своей инфраструктуры или софта.

Open-source: https://github.com/stan-smith/FossFLOW

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Первая статья из серии, где показывается как примеры AI-агентов из популярных Python-фреймворков можно переписать на Java и сделать гораздо лучше с помощью Embabel

Сегодняшняя цель CrewAI — читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Второй пост в блоге показывает, как примеры AI-агентов из популярных Python-фреймворков можно переписать на Java и сделать лучше с помощью Embabel.

Сегодня в фокусе: Pydantic AI — читать

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

Техническое собеседование. Зима 2025. Просил 250к+. Проект: биллинг (сбор информации по поставщикам). Опыт в резюме: 3 года. Сначала было много вопросов об опыте, стеке, тестах, "почему уходишь с текущего места работы?" и т.д. Был лайкводинг.

Вопросы:
- Зачем нужен Spring Framework?
- Как реализовать базовое приложение на Spring Boot?
- Что такое чистый и поддерживаемый код?
- Есть ли разница между SELECT* и перечислением полей?

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

#собес #коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #git
🤔 Что такое команда git cherry-pick?

💬 Кратко:
Команда git cherry-pick позволяет выбрать и применить отдельный коммит из другой ветки в вашу текущую ветку, минуя другие изменения, которые были сделаны в той же ветке. Это полезно, когда вам нужно перенести только один коммит, а не весь набор изменений.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1
image_2025-08-22_08-09-28.png
587.6 KB
#полезное
😐 Наткнулся на такой пост от сеньора, про предварительные условия для System Design:

1. Понимание цели

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

2. Профиль трафика (read-heavy vs write-heavy)

Если система в основном читает (много пользователей просматривают данные), делай упор на кэширование, индексацию, реплики для чтения. Пример: каталог Netflix, карточки товаров Amazon.

Если в основном пишут (много аплоадов, входящих данных), подойдут очереди, пакетная запись, eventual consistency. Пример: сообщения WhatsApp, данные IoT-датчиков.

3. Консистентность vs доступность

Строгая консистентность нужна там, где ошибка недопустима (банки, бронирование).

Eventual consistency подходит там, где можно жить с устаревшими данными (Instagram, аналитика).

4. Требования к задержке

Реалтайм — оптимизация под низкую задержку через кэш или предвычисления. Примеры: гейминг, Zoom, подтверждение платежей.

Асинхронно — очередь и фоновые воркеры. Примеры: e-mail рассылка, генерация отчётов.

5. Масштабируемость

Закладывай рост ×10. Пример: Google Docs начинался маленьким, но сейчас обрабатывает миллионы правок одновременно. Uber — тысячи поездок в минуту. Используй stateless-сервисы и горизонтальное масштабирование.

6. Паттерны доступа

Оптимизируй под то, какие данные и как часто читаются: поиск по гео/локации (geo-hash + ElasticSearch), быстрый доступ к часто используемым ID (Redis/Memcached).

7. Рост данных и партиционирование

Продумывай шардинг заранее (по пользователю, времени, гео). Пример: комментарии YouTube шардуются по ID видео.

Холодные данные сжимай или архивируй (Gmail, Google Drive).

8. Обработка отказов

Используй ретраи, фоллбэки, circuit breakers.

Если API падает по таймауту → повтор + настройка таймаута (пример: Amazon payment retry).

Если кэш недоступен → фоллбэк в БД (пример: Reddit загружает комментарии из БД).

9. Безопасность и авторизация

Авторизация: OAuth / JWT (пример: логин через Google или Spotify).

Защита от абузов и ботов: rate limiting, CAPTCHA (пример: Gmail signup, формы).

10. Нужно ли писать всё самому?

Некритичные фичи лучше вынести в SaaS или сторонние API:

Платежи — Stripe, PayPal.

Хранение медиа — Cloudinary, S3.

Уведомления — Firebase, SendGrid.


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍1
#Собес #git
🤔 Как вы можете ввести слияние на стадии конфликта?

💬 Кратко:
При возникновении конфликта в Git нужно вручную разрешить расхождения в файлах, а затем завершить слияние с помощью команды git merge -- continue .

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
🥱 Как Java передаёт объекты по сети или сохраняет их для последующего использования?

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

Каждый класс, поддерживающий Serializable, имеет serialVersionUID. Это идентификатор версии. При десериализации Java проверяет, совпадает ли UID в данных с тем, что в классе. Если совпадает — объект принимается. Если нет — выбрасывается InvalidClassException.

Что будет, если класс изменился после того, как некоторые объекты уже были сериализованы?

🟠 Добавлено поле → старые объекты работают, новое поле получает значение по умолчанию (0, null, false).
🟠 Удалено поле → старые данные для него игнорируются.
🟠 Изменён тип поля → ломается.
🟠 Изменён UID → ломается.

Если UID не определить явно, JVM сгенерирует его автоматически на основе деталей класса (поля, методы, модификаторы). Даже небольшое изменение, например переименование поля, изменит UID и сделает старые данные несовместимыми.

Рекомендую всегда задавать serialVersionUID вручную. Это даёт контроль над совместимостью и избавляет от неожиданных ошибок.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😵 Вышла неплохая статья про Big O

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

В статье есть наглядные визуализации, интерактив и простые объяснения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#статьи
😵‍💫 В этой статье рассказывается, как внутри работает новый профайлер по CPU-времени в Java, включая обработку сигналов, устройство очередей и асинхронное сэмплирование. Подробный разбор основных компонентов, скрытых за кулисами.

Подробнее читайте здесь

После узнайте о том, как в новом CPU-тайм профайлере Java 25 устроена очередь для запросов на сэмплинг: зачем она нужна, почему её размер критичен для баланса между потерей сэмплов и расходом памяти, и по каким правилам JVM выбирает этот размер в зависимости от интервала сэмплинга.

Подробнее: читать

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