На каком языке вы пишете больше всего?
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
🔥 — пишу код, а не созваниваюсь
🎉 — около часа
👍 — от часа до двух
👾 — от двух до трёх часов
🌚 — весь день созвоны, не успеваю кодить
Please open Telegram to view this post
VIEW IN TELEGRAM
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Младший Java-разработчик
Офис (Новосибирск), Интабия
Подробнее
▪️ Junior Java-разработчик
Офис (Москва), Gridnine
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик (middle)
Гибрид (Санкт-Петербург, Томск), SL Soft
Подробнее
▪️ Middle Java Developer
Удалёнка / Офис (Москва), Адвантум
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java Developer. Custom Solutions
Удалёнка / Офис (Тольятти), Haulmont
Подробнее
▪️ Ведущий Java разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С:Предприятие
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Младший Java-разработчик
Офис (Новосибирск), Интабия
Подробнее
▪️ Junior Java-разработчик
Офис (Москва), Gridnine
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик (middle)
Гибрид (Санкт-Петербург, Томск), SL Soft
Подробнее
▪️ Middle Java Developer
Удалёнка / Офис (Москва), Адвантум
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java Developer. Custom Solutions
Удалёнка / Офис (Тольятти), Haulmont
Подробнее
▪️ Ведущий Java разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С:Предприятие
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
novosibirsk.hh.ru
Вакансия Младший Java-разработчик в Новосибирске, работа в компании Интабия (вакансия в архиве c 8 февраля 2025)
Зарплата: не указана. Новосибирск. Требуемый опыт: 1–3 года. Полная. Дата публикации: 05.02.2025.
Forwarded from Библиотека собеса по Java | вопросы с собеседований
MVP (Minimum Viable Product) — это
Ключевые аспекты MVP:
— MVP содержит только
— MVP создаётся для тестирования
— После выпуска MVP собираются
Важно: MVP — это не просто "сырой" продукт, он должен решать основную задачу, при этом быть полезным и функциональным.
Please open Telegram to view this post
VIEW IN TELEGRAM
ConcurrentSkipListSet — это потокобезопасная и отсортированная реализация интерфейса NavigableSet. Она построена на основе ConcurrentSkipListMap, что позволяет ей быть не только упорядоченной, но и эффективной для параллельного доступа. В основе её работы лежит структура данных skip list (список с пропусками).
Skip list — это многослойная структура данных, состоящая из нескольких уровней связных списков. На нижнем уровне содержатся все элементы в отсортированном порядке, а верхние уровни хранят лишь часть элементов для ускорения операций поиска. Благодаря этому достигается логарифмическая сложность операций add, remove и contains — O(log n).
Пример структуры:
lvl 3: A ------- H
lvl 2: A --- D -- H
lvl 1: A - B - D - F - H - J
🔹 Skip List: Многослойная структура, где верхние уровни позволяют быстро "перепрыгивать" через диапазоны элементов. Это минимизирует количество переходов по связным спискам.
🔹 Под капотом ConcurrentSkipListSet использует ConcurrentSkipListMap, где ключи — это элементы множества, а значения — фиктивные объекты.
🔹 Потокобезопасность достигается благодаря минимальному блокированию и использованию атомарных операций (CAS — Compare-And-Swap).
🔹 Элементы всегда упорядочены в соответствии с их натуральным порядком или компаратором, переданным в конструктор.
▪️ Эффективен для операций чтения (contains, iterators), так как они выполняются без блокировок.
▪️ Операции модификации (add, remove) потокобезопасны, но слегка дороже из-за использования CAS.
▪️ Поддерживает сортировку элементов в натуральном порядке или порядке, определённом компаратором.
▪️ Высокая производительность для сценариев с преобладанием чтений и умеренным количеством обновлений.
🚀 Когда использовать ConcurrentSkipListSet?
- Если нужен потокобезопасный доступ к отсортированному множеству.
- При необходимости частого чтения упорядоченных данных (например, для диапазонов).
- Для сценариев с конкурентным доступом, где важна производительность операций чтения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 JOOQ против Hibernate: что выбрать для вашего проекта?
JOOQ — это «замена» Hibernate? На первый взгляд кажется, что да: compile-time проверки, прозрачные SQL-запросы и отсутствие магии аннотаций делают его заманчивым. Но так ли всё просто?
Эта статья раскрывает, почему JOOQ и Hibernate решают совершенно разные задачи и как их можно использовать вместе. Узнайте:
▪️ В чём сила JOOQ как библиотеки.
▪️ Почему Hibernate — это больше, чем инструмент ORM.
▪️ Какие подходы помогут избежать хаоса в коде.
🔗 Читайте на Хабре
JOOQ — это «замена» Hibernate? На первый взгляд кажется, что да: compile-time проверки, прозрачные SQL-запросы и отсутствие магии аннотаций делают его заманчивым. Но так ли всё просто?
Эта статья раскрывает, почему JOOQ и Hibernate решают совершенно разные задачи и как их можно использовать вместе. Узнайте:
▪️ В чём сила JOOQ как библиотеки.
▪️ Почему Hibernate — это больше, чем инструмент ORM.
▪️ Какие подходы помогут избежать хаоса в коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
В 2024 году экосистема Java продемонстрировала значительные изменения, которые отразили в своем отчёте InfoQ.
Основные тенденции:
🔹 Адаптация новых версий Java: Согласно данным New Relic, Java 17 стала наиболее используемой версией, однако её доля составляет лишь 35%, с близкими показателями у Java 11 (33%) и Java 8 (29%). Интересно, что Java 21, выпущенная в 2024 году, достигла 1,4% использования, что является самым быстрым уровнем адаптации среди LTS-версий после Java 8.
🔹 Переход к OpenJDK: Доля Oracle JDK продолжает снижаться, уступая место дистрибутивам OpenJDK, таким как Eclipse Adoptium и Amazon Corretto. Хотя Oracle остаётся лидером, его преимущество сократилось до нескольких процентов.
🔹 Использование сборщиков мусора: G1 остаётся наиболее популярным сборщиком мусора, используемым более чем в 70% случаев, что обусловлено его статусом сборщика по умолчанию в версиях Java 9 и выше. Однако в однопоточных контейнерах G1 заменяется на Serial, что может приводить к переоценке его использования.
🔹 Размеры heap-памяти: Более 30% JVM используют heap размером до 1 ГБ, а ещё 27% — от 1 до 2 ГБ, отражая тенденцию к микросервисной архитектуре с меньшими объёмами памяти.
Для более детального ознакомления с этими и другими трендами рекомендуем прочитать полный отчёт InfoQ.
Please open Telegram to view this post
VIEW IN TELEGRAM