Composite — это структурный паттерн, который позволяет организовать объекты в древовидные структуры для представления иерархий "часть-целое". Он позволяет клиентам единообразно работать как с отдельными объектами, так и с их группами.
Использование:
🔹 Когда нужно представить иерархическую структуру объектов, например, дерево файловой системы или меню на сайте.
🔹 Когда клиентский код должен одинаково работать как с отдельными объектами, так и с их контейнерами.
🔹 Когда необходимо удобно добавлять новые виды компонентов в систему, поддерживая единый интерфейс.
Преимущества:
Недостатки:
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍10👏5🔥4❤🔥1❤1
  Давайте познакомимся немного ближе.
Будем признательны за ваши ответы на несколько вопросов👇🏻
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤4🔥2😁2
  😁8❤1🔥1👾1
  Ваш возраст:
  Anonymous Poll
    4%
    менее 18 лет
      
    20%
    18-24 года
      
    35%
    25-34 года
      
    29%
    35-44 года
      
    9%
    45-54 года
      
    2%
    55-64 года
      
    1%
    65 лет и старше
      
    😁7👍1🔥1💯1
  В какой стране вы живете последние 3 месяца?
  Anonymous Poll
    67%
    Россия
      
    5%
    Украина
      
    7%
    Беларусь
      
    5%
    Казахстан
      
    1%
    Польша
      
    1%
    Кыргызстан
      
    3%
    Узбекистан
      
    1%
    США
      
    1%
    Грузия
      
    9%
    Другое
      
    😁6👍2🔥1🥱1
  Какой у вас коммерческий опыт работы в IT?
  Anonymous Poll
    26%
    Нет опыта
      
    9%
    До 1 года
      
    18%
    1–3 года включительно
      
    22%
    3–6 лет включительно
      
    26%
    Более 6 лет
      
    😁6❤2👍1🔥1🎉1
  Пишете с использованием Stream API, но не всё до конца понятно? Или пытаетесь разобраться, но остаются вопросы?
Недавно наткнулся на хорошую статью, где доступно объясняются базовые и продвинутые возможности Stream API. Автор делится примерами, показывает, как избегать ошибок, и раскрывает, почему Stream API — это не просто «модный синтаксис», а реальное улучшение в работе с данными.
Коротко, понятно и по делу.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍10🔥5👏2
  2-ая часть вопросов. Это точно последняя. :)
Будем признательны за ваши ответы 👇🏻
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3❤1😁1
  В какой компании вы работаете?
  Anonymous Poll
    9%
    Стартап
      
    25%
    Средний бизнес
      
    57%
    Крупная корпорация
      
    9%
    Фриланс
      
    😁7👍3😢1
  Ваш доход в месяц после вычета налогов:
  Anonymous Poll
    16%
    до 500$
      
    7%
    от 501$ до 800$
      
    10%
    от 801$ до 1100$
      
    18%
    от 1101$ до 2000$
      
    20%
    от 2001$ до 3000$
      
    13%
    от 3001$ до 4000$
      
    6%
    от 4001$ до 5000$
      
    4%
    от 5001$ до 6000$
      
    7%
    от 6001$
      
    🤔9😁6👍2
  На каком языке вы пишете больше всего?
  Anonymous Poll
    3%
    Python
      
    1%
    Go
      
    81%
    Java
      
    1%
    JavaScript
      
    1%
    TypeScript
      
    2%
    C/C++
      
    1%
    C#
      
    4%
    Swift/Kotlin
      
    1%
    PHP
      
    5%
    Другое
      
    😁12👍2🤔2🥰1
  Какая у вас специализация в IT?
  Anonymous Poll
    69%
    Backend
      
    1%
    Frontend
      
    9%
    Fullstack
      
    1%
    Mobile
      
    1%
    Desktop
      
    7%
    QA
      
    2%
    DevOps/Sysadmin
      
    0%
    Data Science
      
    1%
    Кибербезопасность
      
    7%
    Другое
      
    😁7🔥2😢1💯1
  Какой грейд у вас на работе?
  Anonymous Poll
    9%
    Стажер
      
    15%
    Джуниор
      
    30%
    Миддл
      
    22%
    Сеньор
      
    8%
    Тимлид
      
    2%
    Архитектор
      
    1%
    СТО
      
    11%
    Я не айтишник
      
    😁4🤔2👍1
  Какой контент вас больше привлекает в ТГ-каналах?
  Anonymous Poll
    34%
    Полезные советы и лайфхаки
      
    52%
    Обучающие материалы
      
    5%
    Развлекательный контент
      
    6%
    Новости и аналитика
      
    1%
    Истории компаний
      
    1%
    Другой (напишу в комментариях)
      
    😁5🤔3🔥2💯1
  Аннотация @EventListener позволяет подписываться на события в приложении. Это мощный инструмент для создания слабосвязанных компонентов: один класс публикует событие, а другой реагирует на него, ничего о нем не зная.
Spring предоставляет встроенный механизм событий. События — это просто Java-объекты, наследующие ApplicationEvent (начиная с Spring 4.2. наследование стало необязательным).
Публикуете событие через ApplicationEventPublisher:
@Component
public class EventPublisher {
private final ApplicationEventPublisher publisher;
public EventPublisher(ApplicationEventPublisher publisher) {
this.publisher = publisher;
}
public void publishEvent(String message) {
System.out.println("Publishing event: " + message);
publisher.publishEvent(new MyEvent(this, message));
}
}
public class MyEvent {
private final String message;
public MyEvent(Object source, String message) {
super();
this.message = message;
}
public String getMessage() {
return message;
}
}
С помощью @EventListener можно подписаться на любое событие:
@Component
public class EventListenerExample {
@EventListener
public void handleEvent(MyEvent event) {
System.out.println("Event received: " + event.getMessage());
}
}
— Слабая связность: Публикатор не знает ничего о слушателях, и наоборот.
— Асинхронность: Можно легко сделать обработку событий асинхронной с помощью @Async.
🧐 Где это использовать?
— Аудит и логирование
Отправляйте события о ключевых действиях пользователя в отдельный аудит-лог.
— Обработка бизнес-логики
Делегируйте сложную обработку событий (например, отправку писем) в отдельные компоненты.
— Модульная архитектура
Сделайте ваши модули независимыми, обмениваясь событиями вместо вызовов методов.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  2👍25🔥6❤3🎉1
  Forwarded from hahacker_news
  
📚 Java Secrets: High performance and scalability (2024) 
✍️ Автор: Alex Harrison
📃 Страниц: 415
Рассмотрены тонкости архитектуры Java, управления памятью, работы с потоками и методов оптимизации производительности. Это руководство охватывает такие ключевые темы, как внутреннее устройство JVM, сборка мусора и параллельное программирование, предлагая лучшие практики и реальные примеры для создания высокопроизводительных Java-приложений. В нем рассматриваются современные фреймворки, реактивное программирование, архитектура микросервисов и облачная нативная разработка. В продвинутых главах обсуждаются распределенные системы, оптимизация баз данных и безопасность приложений, освещаются методы обеспечения отказоустойчивости, балансировки нагрузки и безопасного кодирования. В книге рассматриваются такие будущие тенденции, как Project Loom, GraalVM и передовые инструменты наблюдаемости, что позволяет разработчикам создавать масштабируемые, надежные и эффективные Java-системы.
✍️ Автор: Alex Harrison
📃 Страниц: 415
Рассмотрены тонкости архитектуры Java, управления памятью, работы с потоками и методов оптимизации производительности. Это руководство охватывает такие ключевые темы, как внутреннее устройство JVM, сборка мусора и параллельное программирование, предлагая лучшие практики и реальные примеры для создания высокопроизводительных Java-приложений. В нем рассматриваются современные фреймворки, реактивное программирование, архитектура микросервисов и облачная нативная разработка. В продвинутых главах обсуждаются распределенные системы, оптимизация баз данных и безопасность приложений, освещаются методы обеспечения отказоустойчивости, балансировки нагрузки и безопасного кодирования. В книге рассматриваются такие будущие тенденции, как Project Loom, GraalVM и передовые инструменты наблюдаемости, что позволяет разработчикам создавать масштабируемые, надежные и эффективные Java-системы.
👍9❤3🔥2😁1
  Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет с бином, если активный профиль не задан?
  Anonymous Quiz
    32%
    Бин будет зарегистрирован в контексте
      
    14%
    Произойдет ошибка загрузки контекста из-за отсутствия активного профиля
      
    38%
    Бин не будет зарегистрирован в контексте
      
    12%
    Все бины с аннотацией @Profile будут зарегистрированы
      
    4%
    Ошибка компиляции
      
    🔥5🌚5👍2👏1😁1
  Ищете, как оптимизировать работу с данными в Hibernate? Эта статья раскрывает все о мощной аннотации @Subselect — её преимуществах, недостатках и альтернативах. Узнайте, как маппить данные на SQL-запросы и использовать их эффективно.
▪️ Прочитайте, если интересно:
— Понять, как работает маппинг сущностей без таблиц.
— Узнать про неизменяемые сущности.
— Исследовать реальные примеры использования.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍5🔥2⚡1