Давайте познакомимся немного ближе.
Будем признательны за ваши ответы на несколько вопросов👇🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Ваш возраст:
Anonymous Poll
4%
менее 18 лет
20%
18-24 года
35%
25-34 года
29%
35-44 года
9%
45-54 года
2%
55-64 года
1%
65 лет и старше
В какой стране вы живете последние 3 месяца?
Anonymous Poll
68%
Россия
5%
Украина
7%
Беларусь
5%
Казахстан
1%
Польша
1%
Кыргызстан
3%
Узбекистан
1%
США
1%
Грузия
9%
Другое
Какой у вас коммерческий опыт работы в IT?
Anonymous Poll
25%
Нет опыта
9%
До 1 года
18%
1–3 года включительно
22%
3–6 лет включительно
26%
Более 6 лет
Пишете с использованием Stream API, но не всё до конца понятно? Или пытаетесь разобраться, но остаются вопросы?
Недавно наткнулся на хорошую статью, где доступно объясняются базовые и продвинутые возможности Stream API. Автор делится примерами, показывает, как избегать ошибок, и раскрывает, почему Stream API — это не просто «модный синтаксис», а реальное улучшение в работе с данными.
Коротко, понятно и по делу.
Please open Telegram to view this post
VIEW IN TELEGRAM
2-ая часть вопросов. Это точно последняя. :)
Будем признательны за ваши ответы 👇🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
В какой компании вы работаете?
Anonymous Poll
9%
Стартап
25%
Средний бизнес
58%
Крупная корпорация
9%
Фриланс
Ваш доход в месяц после вычета налогов:
Anonymous Poll
15%
до 500$
7%
от 501$ до 800$
10%
от 801$ до 1100$
18%
от 1101$ до 2000$
20%
от 2001$ до 3000$
13%
от 3001$ до 4000$
6%
от 4001$ до 5000$
4%
от 5001$ до 6000$
7%
от 6001$
На каком языке вы пишете больше всего?
Anonymous Poll
3%
Python
1%
Go
81%
Java
1%
JavaScript
1%
TypeScript
2%
C/C++
1%
C#
4%
Swift/Kotlin
1%
PHP
5%
Другое
Какая у вас специализация в IT?
Anonymous Poll
70%
Backend
1%
Frontend
9%
Fullstack
2%
Mobile
1%
Desktop
7%
QA
2%
DevOps/Sysadmin
0%
Data Science
1%
Кибербезопасность
7%
Другое
Какой грейд у вас на работе?
Anonymous Poll
9%
Стажер
15%
Джуниор
31%
Миддл
22%
Сеньор
9%
Тимлид
2%
Архитектор
1%
СТО
11%
Я не айтишник
Какой контент вас больше привлекает в ТГ-каналах?
Anonymous Poll
34%
Полезные советы и лайфхаки
53%
Обучающие материалы
5%
Развлекательный контент
6%
Новости и аналитика
1%
Истории компаний
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
Forwarded from Progbook.djvu | Книги для программистов
📚 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-системы.
Forwarded from Библиотека задач по Java | тесты, код, задания
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет с бином, если активный профиль не задан?
Anonymous Quiz
31%
Бин будет зарегистрирован в контексте
14%
Произойдет ошибка загрузки контекста из-за отсутствия активного профиля
39%
Бин не будет зарегистрирован в контексте
12%
Все бины с аннотацией @Profile будут зарегистрированы
4%
Ошибка компиляции
Ищете, как оптимизировать работу с данными в Hibernate? Эта статья раскрывает все о мощной аннотации @Subselect — её преимуществах, недостатках и альтернативах. Узнайте, как маппить данные на SQL-запросы и использовать их эффективно.
▪️ Прочитайте, если интересно:
— Понять, как работает маппинг сущностей без таблиц.
— Узнать про неизменяемые сущности.
— Исследовать реальные примеры использования.
Please open Telegram to view this post
VIEW IN TELEGRAM