Java News
4.38K subscribers
96 photos
5 videos
1 file
1.48K links
Все новости связанные с Java!

По всем вопросам: @NadikaKir

Мы на бирже: https://telega.in/c/java_newss
Download Telegram
75 проектов в IntelliJ IDEA: как я перестал тонуть в Recent Projects и написал свой плагин

Всем привет. Я уже около 10 лет занимаюсь разработкой и около 5 лет полностью перешел на продукты JetBrains, и за все это время у меня накопилось около 150 проектов как рабочих, так и своих личных, я их конечно же красиво разложил по папочкам на диске, поставил теги на папки в маке и добавил быстрый доступ.

Я работаю с несколькими клиентами, активных проектов в работе около 25 штук, стандартные средства и функционал IntelliJ IDEA(Recent projects) с таким количеством прекрасно справляется, быстро ввел название сервиса в поиск и так же быстро открыл.
Идеальная жизнь закончилась когда ко мне пришел клиент с еще 25 микросервисами в разных репозиториях и беклогом с багами в 300+ задач(white-label решение), я вздохнул и начал работать с 50 активными проектами и обнаружил что "Recent projects" в IDEA умеет хранить только 30 последних открытых проектов, и если ты открываешь 31 проект, увы первый пропадает как из поиска, так и из списка.

Читать статью
👍3🔥1
Git для новичков: ветки, коммиты и первый pull request

Git — это вызов, через который проходит каждый второй новичок в разработке. Ветки называются «asdasd», коммиты — «правки», а pull request пугает своей красной кнопкой. Знакомо?

Меня зовут Сергей Прощаев, я Tech Lead в FinTech и преподаватель на курсах в OTUS. В этой статье разбираем самое главное: как создавать ветки и почему их нельзя называть как попало, что писать в коммитах, как сделать pull request в лучших практиках команд разработки.

Читать статью
🔥3👍1
Вышла Java 26

Вышла общедоступная версия Java 26. В этот релиз попало более 2700 закрытых задач и 10 JEP'ов.

Java 26 не является LTS-релизом, и у него будут выходить обновления только полгода (до сентября 2026 года).

Рассмотрим все JEP'ы, которые попали в Java 26.

Читать статью
🔥9🎉41
10 ошибок рефакторинга

Рефакторинг — это не уборка, это хирургия на живом коде. Большинство провалов здесь не технические: смешали рефакторинг с улучшениями, сделали один огромный коммит, затянули релиз — и три недели работы ушли в мусор. Собрал 10 ошибок из реальных проектов: с примерами кода, разбором механики и способами не наступить на те же грабли.

Читать статью
🔥32👍2
Эмулятор QUIK: как наладить тестирование вендорного продукта

В сегодняшнем материале поговорим про эмулятор отечественного биржевого терминала QUIK — посредника между системой брокера и биржами. Программный комплекс QUIK получает информацию из бирж и передает ее в систему брокера, в другом случае сам брокер идет в QUIK и получает биржевую информацию от него. Поскольку тестирование с полноценным QUIK проводить невозможно, мы сделали собственный эмулятор.

Читать статью
👍3🔥1
WebFlux, Virtual Threads и все-все-все

Или: как спорили о реактивщине, а потом Java 21 всё запутала ещё сильнее

Реактивное программирование обещало нам масштабируемость и производительность. Оно их дало. Но вместе с этим подарило новый вид боли: stacktrace на 47 фреймов, половина из которых operator.onNext, а элементарные вещи написаны так, словно решаешь задачу на leetcode. Потом подвезли Virtual Threads, и половина интернета написала «реактивщина умерла», другая – «ничего не изменилось». Истина где-то посередине.

Попробуем с вами разобраться.

Читать статью
👍4🔥3
Деплой приложения на Java. Хостим проект через push в Git

В статье мы рассмотрим, как развернуть в облаке приложение на Java, на примере Spring Boot приложения с встраиваемой базой данных H2. А именно, мы попробуем развернуть приложение с простым REST API, сборкой Maven и тремя эндпоинтами, позволяющими добавить продукт, получить список всех продуктов и узнать общую стоимость всех продуктов.

Читать статью
👍4🔥2
Kafka для начинающих: Apache Avro и Schema Registry (теория)

Почему использование JSON как формата сообщений может стать узким местом в высоконагруженных системах? Что такое Apache Avro и Schema Registry?

Простым языком об этих технологиях, их работе и причинах их возникновения.

Читать статью
2👍2🔥1
Установка Java за 5 минут: JDK 21 или 25 — что выбрать новичку в 2026 году

Уже вышла Java 25 — самая свежая версия, которую все хотят попробовать. Но ставить ли её новичку? Или взять проверенную Java 21 LTS? В этом гайде — пошаговая установка Java на Windows с картинками, разбор различий между версиями, настройка JAVA_HOME и PATH ориентирован для начинающих разработчиков, изучающих Java

Читать статью
👍4🔥3
Головоломка Ханойские башни на Java

Головоломка Ханойские башни (или Ханойская башня, или Towers of Hanoi) – классический пример задачи, в которой лучшее и самое наглядное решение основывается на рекурсии. Кроме того, эта задача иногда встречается на собеседованиях. Тем удивительнее, что последняя статья (хотя и весьма обстоятельная), посвященная этой задаче на Хабре датируется 2013-м годом и решение приводится на Delphi. Давайте исправим эту печальную ситуацию!

Читать статью
👍2🔥1
Коллекции в Java: алгоритмическая сложность и как не тормозить код

Как выбрать коллекцию в Java, чтобы код летал? Разбираем алгоритмическую сложность (Big O) самых популярных структур: ArrayList, LinkedList, HashSet, HashMap. В конце — схемы выбора и лучшие практики от команд. Сохраняйте, чтобы не забыть!

Читать статью
👍2🔥2
Spring Boot Actuator: полный гайд по мониторингу в 2026

Выкатили приложение, а через час — таймауты? Redis отключился, а вы узнали об этом от клиентов?

В этой статье на реальном примере покажу, как Spring Boot Actuator превращает ваше приложение из «чёрного ящика» в прозрачную систему. Разберём:

➡️ Что такое Actuator и зачем он нужен.
➡️ Как настроить эндпоинты, чтобы не открыть дыру в безопасности.
➡️ Какие метрики реально помогают найти узкие места (история, как мы ускорили приложение на 40%).
➡️ Кастомные метрики для бизнес-показателей.
➡️ Лучшие практики продакшена: liveness/readiness probes, изоляция портов, кастомные HealthIndicator.

Читать статью
👍3🔥2
RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь.

Читать статью
👍4🔥3
10 ошибок API

40 000+ записей без пагинации, 200 OK вместо 400 Bad Request, SQL-запросы в ответах клиенту. Собрал 10 ошибок API из реальных проектов: монолитов, микросервисов, стартапах и энтерпрайза.

Читать статью
2👍2🔥2
Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

Задача перевода денег в первом приближении сводится к обновлению пары строк и кажется простой — но обеспечение корректности при параллельном доступе может быть неожиданно сложным для только знакомящихся с уровнями изоляций БД.

Читать статью
🔥2
JPA Entity. Загрузи меня не полностью

JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей.
Подготовили статью, в которой рассмотрели имеющиеся в Spring Data JPA инструменты для частичной загрузки сущностей, а также разобрали их особенности и corner-кейсы.


Читать статью
🔥3
Микросервисы: как выбрать между синхронной блокировкой и событийной архитектурой?

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

В статье вы найдёте:

▫️ живые примеры из реальных аварий (включая историю с бесконечными ретраями в очереди),
▫️ три готовые диаграммы в формате Mermaid, которые можно сразу использовать в документации,
▫️ чёткий алгоритм выбора стиля под вашу задачу.

Материал будет полезен архитекторам, ведущим разработчикам и всем, кто проектирует распределённые системы. Покажу, как не повторять ошибок, которые стоили компаниям миллионов.

Читать статью
4👍4🔥3
Новое событие в JFR для диагностики использования устаревшего (deprecated) кода

В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется. Обычно о конкретных сроках удаления анонс делается заранее и в теории можно успеть подготовиться, но на практике не все так просто.

В больших проектах найти куски устаревшего кода в куче зависимостей задача не тривиальная и требующая хорошей автоматизации. В этой ситуации к нам приходит на помощь новый тип события в JFR. Он был добавлен в JDK 22.

Давайте посмотрим на простом примере как это работает.


Читать статью
👍3🔥1
GRASP: почему настоящая архитектура начинается не с SOLID

Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.

Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.

Безусловно, это всё важные и фундаментальные вещи.

Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.


Читать статью
🔥3
Базовый обзор @TempDir в Java

Сегодня разберемся с @TempDir — мощным, но часто недооценённым инструментом JUnit 5 для работы с временными файлами и директориями в тестах.

Читать статью
🔥3