
- ВКонтакте
- РћРТвЂВВВнокласснРСвЂВВВРєРСвЂВВВ
- Telegram
Java библиотека
Привет! Добро пожаловать на Telegram канал "Java библиотека"! Здесь вы найдете множество полезных ресурсов для Java программистов. Мы предлагаем книги, статьи, мемы и многое другое, чтобы помочь вам углубиться в мир Java программирования.
Присоединяйтесь к нам, чтобы получать самую свежую информацию и делиться опытом с другими Java разработчиками. Наш канал предлагает разнообразные материалы, которые помогут вам расширить свои знания и навыки в Java.

Участвуй в хакатоне МТС True Tech Hack 2025 и разработай решение на базе одной из ИТ-платформ МТС:
1. Трек от DataOps Platform
Разработай решение для автоматизации процессов сбора и обработки данных и создания аналитических отчетов
2. Трек от Integration Platform
Разработай решение на базе ИИ, автоматизирующее процесс создания JSON-схем для описания бизнес-логики и интеграций
3. Трек от True Tabs
Автоматизируй процессы работы с данными, создав единую экосистему на базе no-code продукта True Tabs
4. Трек от Product Factory
Разработай AI-ассистент для Android-приложений, который будет анализировать интерфейсы и преобразовывать визуальные элементы в голосовые подсказки
5. Трек от MWS GPT
Разработай компактную модель «ученик» для эффективной и быстрой классификации текста
Хакатон будет проходить с 17 по 25 апреля.
Регистрация открыта до 16 апреля https://truetechhack.ru/
Призовой фонд — 1 500 000 рублей.
Участие могут принять системные аналитики, Data Scientists, Data Engineers, frontend- и backend-разработчики, Android-разработчики, бизнес-аналитики, аналитики данных, MLOps-инженеры, DevOps-инженеры, Product-менеджеры, ИТ-архитекторы, UI/UX-дизайнеры.
Регистрируйся на МТС True Tech Hack 2025: https://truetechhack.ru/

MapStruct: быстрый и безопасный маппинг объектов
MapStruct анализирует названия полей в исходном (source) и целевом (target) классах. Если поля совпадают по названию и типу, он автоматически создаёт код для их преобразования.
Когда названия полей не совпадают, нужно явно указать соответствие с помощью аннотации @Mapping:
— source — поле в исходном классе
— target — поле в целевом классе
@Mapping(source = "fullName", target = "name")
UserDTO toDTO(User user);
1. Добавьте зависимости: mapstruct, mapstruct-processor
2. Выберите интерфейс или абстрактный класс и определите методы для преобразования объектов
3. Используйте маппер. В Spring-приложении маппер можно заинжектить как обычный бин.
Документация MapStruct приводит примеры с интерфейсами, но библиотека поддерживает и абстрактные классы. Выбор за вами.
Интерфейс — MapStruct сам создаёт реализацию:
@Mapper(componentModel = "spring")
public interface UserMapper {
@Mapping(source = "fullName", target = "name")
UserDTO toDTO(User user);
}
Абстрактный класс — позволяет добавлять кастомную логику:
@Mapper(componentModel = "spring")
public abstract class UserMapper {
@Mapping(source = "fullName", target = "name")
public abstract UserDTO toDTO(User user);
public String mapAgeToString(int age) {
return age + " лет";
}
}
📌 Имена методов можно задавать любые. MapStruct анализирует типы аргументов и возвращаемых значений, чтобы понять, что куда маппить.
При использовании componentModel = "spring" маппер регистрируется как Spring-бин. Что позволяет заинжектить маппер:
@Service
public class UserService {
private final UserMapper userMapper;
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public UserDTO convertUser(User user) {
return userMapper.toDTO(user);
}
}
— Маппинг DTO ↔️ Entity в Spring-приложениях
— Конвертация данных между разными объектами
— Обработка вложенных структур и коллекций
🎥 VK Видео — видеосервис, который выдерживает высокие нагрузки и постоянно внедряет новые технологии. Аудитория сервиса превышает
41 миллион человек.
22 апреля состоится митап, где топ-менеджеры и техлиды подробнее расскажут о сервисе — от архитектуры до пользовательского опыта.
Кому актуально участие:
1️⃣ Для backend-разработчиков, интересующихся высоконагруженными системами и масштабируемой архитектурой.
2️⃣ Для мобильных разработчиков, работающих с видео и пользовательским контентом.
3️⃣ Для ML-специалистов, вовлечённых в построение рекомендательных систем, анализ видео и оптимизацию доставки.
4️⃣ Для всех, кто хочет узнать, какие технологии и подходы применяются
Что будет на митапе:
✅ Обзор архитектуры VK Видео: распределённые системы, объёмы хранения
✅ Организация команд, процессы внутри, и кого сейчас ищут в проект.
✅ Открытая сессия вопросов и ответов с командами разработки и управления продуктом.
Почему это интересно:
✅ Разработчики и менеджеры открыто делятся кейсами и техническими решениями
✅ Возможность получить актуальные знания и познакомиться с профессионалами, стоящими за продуктом
✅ Актуально для тех, кто рассматривает возможности карьерного роста в большом tech-продукте.
👉 Ссылку можно найти тут

GRASP: почему настоящая архитектура начинается не с SOLID
Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.
Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.
Безусловно, это всё важные и фундаментальные вещи.
Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.
Читать статью
VK
GRASP: почему настоящая архитектура начинается не с SOLIDМногие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не..

Кнопка «F5» устала: real-time уведомления в микросервисной архитектуре
Представьте себе: у вас железнодорожная станция, сотни вагонов, десятки пользователей в системе, каждый раз кто-то нажимает кнопку "Обновить", чтобы узнать — разгрузили ли нужный вагон.
Вся логика обновления построена на "manual refresh". Да-да, пользователь сам жмёт кнопку, чтобы получить свежие данные. Система автоматической разгрузки или другой человек разгрузил что-то на другом конце станции, но вы об этом не узнаете, пока не перезагрузите страницу.
Читать статью
VK
Кнопка «F5» устала: real-time уведомления в микросервисной архитектуреПредставьте себе: у вас железнодорожная станция, сотни вагонов, десятки пользователей в системе, каждый раз кто-то нажимает кнопку "Обнов..
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!

Если часто используете String для конкатенации (+), замените его на StringBuilder — это ускорит выполнение и снизит нагрузку на память.
String result = "";
for (int i = 0; i < 1000; i++) {
result += i; // Каждое сложение создаёт новый объект
}
StringBuilder result = new StringBuilder();
for (int i = 0; i < 1000; i++) {
result.append(i); // Использует один буфер, без лишних объектов
}
Узнаём какое аниме будет самым рейтинговым еще до выхода
Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)
Читать статью
VK
Узнаём какое аниме будет самым рейтинговым еще до выходаКогда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или неинтересным для меня. Было много идеи (..

Spring и Spring Boot. Разработка облачных приложений на Java (2025) PDF
В книге рассмотрено актуальное состояние технологий Spring и Spring Boot, помогающих шире раскрыть возможности языка Java и аспектно-ориентированного программирования. Пошагово объяснено, как самостоятельно написать и развернуть облачный проект под управлением Spring. Рассказано о координации микросервисов на Java с применением Spring и модуля Spring Core способах внедрения зависимостей, аннотировании кода. На примере сквозного веб-приложения описаны важнейшие приемы работы с данными в стиле REST, тестирование данных, обеспечение согласованности, безопасности и долговременного хранения данных в приложении.
Для Java-программистов.

Наш чатик с вакансиями и резюме, присоединяйся: https://t.me/job_java
Telegram
Java Job - Вакансии и резюмеНаш канал по Java @javalib
Вакансии Java, также можете скидывать свои резюме!
Купить звёзды: @PremiumBot
Паттерн Интерпретатор (Interpreter)
Interpreter — это поведенческий паттерн, который предоставляет способ вычисления выражений, заданных на каком-либо языке. Он определяет грамматику языка, а также интерпретатор, который использует эту грамматику для выполнения выражений.
Когда использовать
Преимущества
Недостатки
Interpreter хорошо подходит для создания простых языков, например, DSL (domain-specific language), и позволяет реализовать мощные возможности анализа и исполнения выражений.
Однако для более сложных языков лучше использовать специализированные инструменты вроде ANTLR или парсеров.

Forwarded From Java Guru 🤓
Какая настройка при создании связи Customer-Order приведет к неправильному поведению при сохранении нескольких Order, связанных с одним Customer?
Anonymous Quiz
21% - CascadeType.ALL
15% - fetch = FetchType.EAGER
10% - optional = false
44% - unique = true
10% - referencedColumnName
Forwarded From Java Guru 🤓
Какая настройка при создании связи Customer-Order приведет к неправильному поведению при сохранении нескольких Order, связанных с одним Customer?

🛠 Patroni + PostgreSQL: как обеспечить высокую доступность?
Когда база данных — это сердце системы, её отказ может стоить дорого. Как сделать PostgreSQL отказоустойчивым и управляемым? Решение есть — Patroni!
📅 14 апреля в 20:00 (мск)
🎓 Открытый вебинар с Сергеем Кирьяковым
💡 Что разберём?
✅ Как работает Patroni и зачем он нужен для PostgreSQL
✅ Основные компоненты и архитектуру Patroni
✅ Как правильно настроить и конфигурировать Patroni
✅ Практические примеры управления кластером PostgreSQL
✅ Оптимизация, мониторинг и лучшие практики работы
🎯 Что получите?
✔️ Понимание работы Patroni и его роли в HA-кластерах PostgreSQL
✔️ Готовые практические решения по настройке и оптимизации
✔️ Навыки мониторинга и управления отказоустойчивыми базами
Присоединяйтесь и узнайте, как обеспечить PostgreSQL надёжностью!
👉 Регистрируйтесь по ссылке: https://vk.cc/cKFOBb
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

