Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Java Digest #24

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске рассказываем о новых JEPs в OpenJDK, которые вошли в статус Candidate. Спойлер Applet API — RIP. В этом месяце вышли сразу IntelliJ IDEA 2025.1 и OpenIDE — эта битва будет легендарной!

Мы добавили краткий обзор JavaOne’25. И, как обычно, собрали полезные статьи: как избавиться от Flaky-тестов с помощью JMina, как ZGC аллоцирует память в хипе. Сделали подборку материалов о паттернах и методологиях разработки и разбавили размышлениями о том, как писать хороший код и оставаться профессионалом.
Читать свежий выпуск

Читать: https://habr.com/ru/companies/tbank/articles/906934/?utm_campaign=906934

@a_cup_of_java | Другие наши каналы
👍3
JDK 25 упрощает Java: методы main теперь могут быть нестатичными, введены компактные исходники и новый класс java.lang.IO для удобного ввода-вывода. Эти нововведения облегчают обучение и создание простых программ, сохраняя совместимость со стандартным инструментарием.

Подробности: https://www.infoq.com/news/2025/05/jdk25-instance-main-methods/

#en

@a_cup_of_java | Другие наши каналы
😱7💯2
Новое в экосистеме Java: четыре ключевых JEP для JDK 25, восьмой релиз Spring AI 1.0.0, обновления Quarkus 3.22.0 и первый кандидат LangChain4j 1.0.0. WildFly вошёл в Commonhaus Foundation, поддерживая развитие открытого ПО. Следите за изменениями!

Подробности: https://www.infoq.com/news/2025/05/java-news-roundup-apr28-2025/

#en

@a_cup_of_java | Другие наши каналы
7 запросов к разработке вызывающих и смех и слезы

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

Итак, начну с собственного реноме. Меня зовут Богдан, я работаю в одном достаточно большом отечественном финтеке вот уже 7-й год и добрую половину из них занимаю позицию Java-лида в одной из интеграционных команд. За такое (относительно) длительное время в энтерпрайзе периодически приходят требования на разработку, от которых хочется или плакать, или смеяться, а то и всё вместе. Происходит это по самым разным причинам, которые мы сегодня касаться не будем. Скажу лишь, что никого не осуждаю, не пытаюсь никого принизить и наверняка сам генерировал нечто схожее, о чем пойдет речь ниже. Также стоит учесть, что мой бэкграунд преимущественно бэкендово-интеграционный, соответственно, и кейсы будут из этой области и контекста. Ну а дальше — по кейсам, по тем 7 кейсам, когда прочитав требования, внутри что-то скукоживается от отвращения либо раздается улыбка во всё лицо — у кого как.

Немного глобального контекста: проект, вокруг которого будут описаны курьезные запросы, — интеграционная шина данных, напичканная самой разной интеграционной логикой, Java-приложение, состоящее из невообразимого количества SOAP/REST-методов, шедуллеров и всяческих очередей.


Читать: https://habr.com/ru/articles/907134/?utm_campaign=907134

@a_cup_of_java | Другие наши каналы
Нужен ли сеньору второй язык программирования? Опытом поделился разработчик с 18 годами стажа

Нужен ли сеньору второй язык программирования? Опыт и выводы разработчика с 18 годами стажа — когда и зачем изучать новые языки

Читать: «Нужен ли сеньору второй язык программирования? Опытом поделился разработчик с 18 годами стажа»

@a_cup_of_java | Другие наши каналы
2💯2
Пример забытого «наивного» алгоритма

Недавно написал скептический комментарий по поводу необходимости алгоритмических интервью. Вспомнил примеры из своей практики, один из них вполне подходящий, можно сделать патч в opensource проекте.

Разработчики зачастую пишут код (скелет), используя наивные алгоритмы и не используя валидаторы (предполагая изменить код позже либо ошибочно предположив что объем данных будет небольшим).

Не так давно попался один тикет с жалобой на зависание in-house приложения которое обрабатывает adobe pdf документы (печатает в png изображение для web клиентов).

Приложение использует библиотеку apache pdfbox.

Запустил тест с проблемным pdf документом в котором использовались формы – компьютер “пошел на взлет”. Похоже на длинный цикл, хорошо пошел.

Жду пару минут, стало интересно.

Начался тротлинг CPU (перегрев, рабочая коробочка у меня небольшая, мобильная, с воздушным охлаждением и быстро нагревается при большой длительной нагрузке).


Читать: https://habr.com/ru/articles/907316/?utm_campaign=907316

@a_cup_of_java | Другие наши каналы
Join таблиц в реальном времени на Apache Flink

Статья посвящена реализации join-операций в системах потоковой обработки данных на базе Apache Flink. Рассматриваются основные подходы к объединению потоков в реальном времени, включая inner join, а также паттерны дедупликации. Уделено внимание использованиюKeyedCoProcessFunction для построения отказоустойчивых и масштабируемых join-пайплайнов. Работа ориентирована на инженеров, строящих real-time витрины и сложные трансформации на Flink в продакшене.


Читать: https://habr.com/ru/articles/907664/?utm_campaign=907664

@a_cup_of_java | Другие наши каналы
Где искать проблему в проде: сравнение профилирования с eBPF и BitDive

eBPF vs BitDive: Сравнение решений для системного и прикладного профилирования

Разбираем разницу между eBPF и BitDive: системное профилирование против глубокого анализа Java-приложений. Что выбрать для продакшена?


Читать: https://habr.com/ru/articles/907750/?utm_campaign=907750

@a_cup_of_java | Другие наши каналы
ООП — это скам

На хабре и в остальном интернете хватает статей с критикой ООП. Кто-то ругает эту концепцию за излишнюю многословность, кто-то рассуждает о плохих аспектах ООП, кто-то сравнивает реализации ООП в разных языках.

После прочтения большинства этих статей и нескольких лет кодинга на C# я заявляю: «ООП - это один большой обман. Никто не понимает, что это такое. Люди просто говорят какие-то умные термины, их собеседники с умным видом кивают, хотя на деле трактуют эти же термины совершенно по-разному».

И вот почему.


Читать: https://habr.com/ru/articles/907756/?utm_campaign=907756

@a_cup_of_java | Другие наши каналы
💊7👍3
Синтетика подвела: как реальные данные делают unit-тесты надёжными

Введение

В мире разработки программного обеспечения надёжность и качество кода напрямую зависят от эффективности тестирования. Unit-тесты призваны проверять поведение отдельных компонентов без влияния внешних факторов. Традиционно в них используют синтетические (искусственно сгенерированные) данные, однако на практике всё чаще оказывается, что такие тестовые наборы не отражают реальных сценариев и приводят к ложному ощущению «зелёного» покрытия. В этой статье мы разберём, почему использование реальных данных при написании unit-тестов значительно повышает их ценность, и объясним, какие недостатки несут синтетические данные.


Читать: https://habr.com/ru/articles/907812/?utm_campaign=907812

@a_cup_of_java | Другие наши каналы
МCP в Java: новый уровень интеграции с ИИ

Java-сообщество активно внедряет Model Context Protocol (MCP) — открытый стандарт для интеграции контекста с крупными языковыми моделями. Инструменты на базе JBang упрощают запуск MCP-серверов, расширяя возможности разработчиков и обогащая бизнес-приложения.

Подробности: https://www.infoq.com/news/2025/05/mcp-within-java-ecosystem/

#en

@a_cup_of_java | Другие наши каналы
JavaScript: большой гайд от Tproger

Гайд по JavaScript. Топовые и полезные статьи с теорией, инструментами и фреймворками. Практика для новичков и продвинутых программистов. Tproger

Читать: «JavaScript: большой гайд от Tproger»

@a_cup_of_java | Другие наши каналы
🌚1
От пет-проекта к книге про Spring

Рассказ о том, как я написал свою вторую книгу, о создании тестового приложения-примера для неё, об истории написания пет-проекта длиной почти в 20 лет, о том как мужественно переписывал его несколько раз, о мыслях в процессе написания проекта, о размышлениях и страданиях в процессе написания книги, о развилках и муках выбора, о финальном завершении книги, о выпуске книги в продажу, об испытанных при этом эмоциях, о сроках и их срывах, о дневнике написания книги и всём остальном.


Читать: https://habr.com/ru/articles/907920/?utm_campaign=907920

@a_cup_of_java | Другие наши каналы
До свидания, Kafka, или graceful shutdown на Spring Boot для Kafka

В этой статье я немного объясню важность graceful shutdown и расскажу как сделать плавное завершение работы твоего Spring Boot приложения, которое взаимодействует с Kafka.


Читать: https://habr.com/ru/articles/908022/?utm_campaign=908022

@a_cup_of_java | Другие наши каналы
Новое в мире Java: библиотека JBang Jash упрощает выполнение внешних процессов и комманд через удобный и понятный API. Теперь работа с процессами стала проще, эффективнее и чище — без громоздкого кода и ручного управления потоками. Подробнее на GitHub.

Подробности: https://www.infoq.com/news/2025/05/jbang-jash/

#en

@a_cup_of_java | Другие наши каналы
🔥3🌚1
Денежные переводы в SQL

Переводим деньги в SQL

В этом посте я покажу распространённые стратегии обработки переводов между счетами, сосредоточив внимание на согласованности данных, уровнях изоляции и компромиссах.
Мы будем использовать упрощённые SQL и Java фрагменты с комментариями.


Читать: https://habr.com/ru/articles/908198/?utm_campaign=908198

@a_cup_of_java | Другие наши каналы
Join таблиц в реальном времени на Apache Flink ( Часть 2 )

В данной статье приводится решение проблемы построения витрин данных в реальном времени с помощью Apache Flink. Рассказывается 2 часть подробной реализации решения этой задачи. В данной части рассмотрена проблема учета сообщений на удаление и частично операций update , в связи с чем достигается полная консистентность данных СИ с СП при условии гарантии, что ключ join условия не обновляется.


Читать: https://habr.com/ru/articles/908220/?utm_campaign=908220

@a_cup_of_java | Другие наши каналы
Python, Java, C++ и Go — как появились популярные языки программирования

Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :)

Читать: https://habr.com/ru/companies/selectel/articles/906256/?utm_campaign=906256

@a_cup_of_java | Другие наши каналы
Автоматизация тестирования Java UI-приложений с Arctic

Arctic от Amazon Corretto позволяет запускать автоматические проверки старых и новых Java-десктоп-тестов без их доработки. Инструмент сравнивает скриншоты и воспроизводит действия, помогая выявлять визуальные регрессии и экономить время на проверке.

Подробности: https://aws.amazon.com/blogs/developer/arctic-automated-desktop-application-testing/

#en

@a_cup_of_java | Другие наши каналы
Как решить ошибку Arithmetic overflow при конвертации IDENTITY в tinyint, smallint или int в SQL Server

Ошибка возникает, когда значение IDENTITY выходит за пределы диапазона типа данных. Решение — увеличить тип колонки до bigint или сделать reseed значения IDENTITY, учитывая возможные риски при изменениях. Топ-курсы и обзоры для IT-специалистов в 2024–2025 годах. В статье представлены лучшие онлайн-курсы по Apache Camel, Data Science, Selenium, Cloud Computing, а также отзывы о популярных образовательных платформах и сертификатах. Полезно для развития карьеры и повышения квалификации.

Подробности: http://www.java67.com/2019/08/arithmetic-overflow-error-converting-indentity-to-data-type-tinyint-smallint-and-in-sql-server-database.html

#en

@a_cup_of_java | Другие наши каналы
Лучшие онлайн-курсы по HTML и CSS в 2024 году

Если хотите освоить веб-дизайн и фронтенд-разработку, стоит обратить внимание на лучшие курсы по HTML5 и CSS3 от Udemy, Coursera, Pluralsight и edX. Они подходят и новичкам, и опытным специалистам. Лучшие онлайн-курсы по программированию и веб-разработке в 2025 году. В статье собраны популярные направления — от Python и Java до DevOps и блокчейна, включая бесплатные и платные варианты для всех уровней. Отличный гид для выбора обучения!

Подробности: http://www.java67.com/2020/08/5-best-online-courses-to-learn-html-5.html

#en

@a_cup_of_java | Другие наши каналы