Java Portal | Программирование
12.6K subscribers
1.08K photos
87 videos
35 files
928 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Google увеличил функционал Agent Development Kit для Java, внедрив поддержку LangChain4j. Теперь Java-инженеры способны подключать модели OpenAI, Anthropic, Mistral и прочие, разрабатывая многоагентные решения с более гибким контролем и усовершенствованной логикой.

Подробности: тык

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Вопрос для собеседования Java/Backend:

Как современные приложения оставляют вас залогиненным без хранения сессии на сервере? 🫖


Современные приложения могут держать пользователя залогиненным без серверного хранения сессий благодаря JWT

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

JWT состоит из трёх частей — заголовка с алгоритмом и типом, полезной нагрузки с пользовательскими данными (claims) и подписи, которая гарантирует подлинность.

Такой подход делает авторизацию stateless: вся необходимая информация хранится в самом токене.

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

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Держите репозиторий на GitHub где собрана отличная подборка бесплатных материалов по программированию.

Здесь собраны сотни книг по самым разным направлениям: от веб-разработки и геймдева до AI, блокчейна, создания приложений и даже prompt engineering. 😎

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Вопрос из Java-собеседования (сценарный):

Ты используешь @Autowired для field injection в Spring-проекте. Это просто и работает.

@Component
public class UserService {

@Autowired
private UserRepository userRepository;
}


Тимлид просит тебя отрефакторить это, так как field injection часто считается плохой практикой.

Подумай о минусах field injection:

→ Visibility: скрывает обязательные зависимости класса.
→ Testability: усложняет unit-тестирование, часто требует рефлексии.
→ Runtime Issues: может привести к NullPointerException, если зависимость отсутствует.
→ Design: поощряет классы с чрезмерной ответственностью (нарушение SRP).

Какой рекомендуемый вариант?

→ Constructor Injection.

Зависимости явно передаются при создании объекта, делая их обязательными.

@Component
public class UserService {
private final UserRepository userRepo; // final!

public UserService(UserRepository userRepo) {
this.userRepo = userRepo;
}
}


Почему Constructor Injection лучше?

→ Explicit: явно показывает, что нужно классу для работы.
→ Guaranteed: приложение не поднимется, если зависимости нет.
→ Immutable: final-поля безопаснее и дружелюбнее к многопоточности.
→ Testable: легко замокать и прокинуть зависимости в тестах.

Это приводит к более надежному и поддерживаемому коду.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3💊1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁179
Топ-53 задач на Java для подготовки к собеседованиям

В статье собраны самые популярные задания по Java, полезные курсы по DevOps, Linux и паттернам проектирования, а также список вопросов для подготовки к техническим интервью.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43
Подготовка к собеседованию по Java Microservices

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

Монолит vs Микросервисы → масштабирование отдельных функций независимо
Проектирование микросервиса → изоляция управления профилем пользователя
Паттерн API Gateway → единая точка входа для клиентов
Взаимодействие сервисов (REST vs Messaging) → асинхронная очередь обработки заказов
Паттерн Circuit Breaker → предотвращение каскадных сбоев сервисов
Spring Cloud Load Balancer → распределение трафика между инстансами
Spring Cloud Config → управление внешними конфигурационными параметрами
Service discovery (Eureka/Consul) → автоматический поиск сервисов друг другом
Feign Client vs WebClient → блокирующие и неблокирующие вызовы
Event-driven архитектура и Kafka → обработка потоков данных в реальном времени
Отдельная база для сервиса vs общая база → разделение уровня хранения данных
Паттерн Saga → согласованность распределённых транзакций
Аутентификация на основе JWT и OAuth2 → безопасные stateless API
Безопасность в API Gateway → централизованная аутентификация и авторизация запросов
Observability (логи, трассировка, метрики) → отладка проблем в продакшене
Prometheus и Grafana → мониторинг состояния системы и дашборды
Стратегии деплоя в Kubernetes → авто-масштабирование и самовосстановление приложений
Blue-Green и Canary-деплой → нулевой даунтайм и минимальные риски при релизах
Когда использовать WebFlux → высоконагруженные и низколатентные API
CQRS и Event Sourcing → разделение моделей чтения и записи при сложных сценариях


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔥Прими участие в Хакатоне от ИТ-холдинга Т1 в Новосибирске и поборись за призовой фонд 800 000 рублей!

Когда: 23–26 октября
Формат: онлайн + финал на площадке

Участвуй, если ты:
🔹обучаешься на технической или ИТ-специальности;
🔹развиваешься в направлении разработки, аналитики, CV, ML или DevOps;
🔹сможешь быть в Новосибирске 26 октября.

Выбери свой кейс:

✴️Цифровой дресс-код: фон, который выделяет вас. Создай локальный ML-модуль сегментации видео и генератор персонализированных фонов.

✴️CodeMetrics: метрики, которые помогают расти. Разработай систему автооценки эффективности команд через анализ Git-метрик.


Почему стоит участвовать:
🔘Кейс в портфолио и полезная обратная связь от менторов Т1;
🔘Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний;
🔘Реальный опыт командной работы;
🔘Мерч и атмосфера сильного комьюнити — в Т1 более 5 000 джунов из 580+ вузов России и Беларуси.

Регистрация открыта!
➡️ Успей до 21 октября по ссылке.

erid: 2Vtzqwmd32u
Please open Telegram to view this post
VIEW IN TELEGRAM
Как тестировать Spring Boot приложения в Java?

Статья объясняет, как использовать @SpringBootTest, разницу между юнит- и интеграционными тестами, а также даёт советы по ускорению тестов. Полезно для разработчиков любого уровня, работающих со Spring Boot и микросервисами.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Многие начинают с Java и используют static повсюду.

Кажется, что это «упрощает код», например при вызове методов, но на самом деле static — это довольно точное понятие, которое стоит хорошо понимать.

В Java static означает, что что-то принадлежит классу, а не экземпляру. То есть:

- Статическое поле существует в памяти только один раз и шарится между всеми объектами этого класса.
- Статический метод можно вызвать без создания экземпляра.
- Жизненный цикл статических сущностей начинается при загрузке класса в память и заканчивается только при завершении JVM.

Для чего используется? 🤔

- Для объявления констант (public static final), которые никогда не меняются.
- Для утилитарных методов (например, Collections.sort()), которые не зависят от внутреннего состояния объекта.

Где начинаются проблемы?

- Когда используешь static для переменных, которые на самом деле должны быть частью состояния объекта.
- Когда превращаешь его в «глобальную зависимость», и код становится тяжело тестировать, плюс возникает сильная связность.

static — это не шорткат. Это способ сказать:
«это уникально и шарится по всему приложению».


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Бэкенд на пределе возможностей: миллионы пользователей, высокие нагрузки, отказоустойчивость.

В канале Backend VK Hub эксперты рассказывают, как устроены системы под капотом, делятся экспертизой и обсуждают инженерные решения.

Подписывайтесь, чтобы узнать, как строятся сервисы, которые должны работать всегда и у всех.
🔥105👍5😁1🤯1
Java Streams Cheat Sheet

Пример кода со всеми базовыми приёмами работы со Stream API:

преобразование коллекций

flatMap, mapMulti, peek

сортировка, min/max, distinct

проверки (allMatch, anyMatch)

объединение (reduce, joining)

группировка и разбиение (groupingBy, partitioningBy)


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7