Чашечка Java
10.2K subscribers
3.2K photos
6 videos
50 files
4.61K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Новое событие в JFR для диагностики использования устаревшего (deprecated) кода

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

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

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

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

@a_cup_of_java | Другие наши каналы
Лучшие курсы Docker и Kubernetes на Udemy в 2024 году

Docker и Kubernetes остаются ключевыми инструментами для разработчиков. В статье представлены 8 лучших курсов на Udemy, которые помогут освоить эти технологии. Первый курс "Docker & Kubernetes: The Practical Guide" от Максимилиана Шварцмюллера особенно рекомендуется благодаря актуализации и отличным отзывам.

Подробности: http://www.java67.com/2024/08/8-best-docker-and-kubernetes-courses-on.html

#en

@a_cup_of_java | Другие наши каналы
Глубокое погружение в Sealed классы и интерфейсы

С появлением sealed классов и интерфейсов Java открыла перед разработчиками новые горизонты в области проектирования устойчивого и предсказуемого кода.

В новом переводе от команды Spring АйО было рассмотрено, как эти элементы языка позволяют строго контролировать иерархию классов, обеспечивая тем самым безопасность и простоту поддержки кода. Мы рассмотрим ключевые особенности sealed классов и интерфейсов, их влияние на архитектуру приложений и практические примеры их применения.


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

@a_cup_of_java | Другие наши каналы
Простые коммуникации в Java-приложении

Привет,

Как вы уже, наверное, знаете, Jmix — это такая платформа для разработки корпоративных приложений, построенная на основе фреймворков Spring, Vaadin и других классных технологий с открытым исходным кодом.

Ее использование позволяет абстрагироваться от многих сложностей фронтенд-разработки. Разработчикам не обязательно учить JavaScript/TS, погружаться в особенности популярных фронтенд-фреймворков, тренироваться в верстке, чтобы иметь возможность создавать полнофункциональные веб-приложения. Достаточно просто писать код на Java и немного компоновать экраны в XML. При разработке интерфейса для Jmix под капот уходят также некоторые механики, связанные с «перекладыванием джейсонов», что открывает дополнительные возможности для написания интерактивных веб-приложений с использованием готовых компонентов и дополнений.

Сегодня мы попробуем убедиться в этом на примере, создав MVP приложения для взаимодействия пользователей.


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

@a_cup_of_java | Другие наши каналы
🎓 Лучшие темы для собеседований по Java в 2024 году

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

🔗 Читайте статью на Java67 и готовьтесь эффективно! Как подготовиться к собеседованию на Java-разработчика

Для успешного прохождения собеседования на позицию Java-разработчика важно сосредоточиться на ключевых концепциях языка: многопоточность, коллекции, устройство JVM. Если вы нацелены на веб-разработку — углубитесь в изучение таких фреймворков, как Spring и Hibernate.

Подробности: http://www.java67.com/2024/08/26-best-java-topics-for-interviews-in.html

#en

@a_cup_of_java | Другие наши каналы
7 Лучших бесплатных курсов по Jenkins для Java-программистов

Хотите освоить Jenkins и CI/CD? Ознакомьтесь с нашим списком из лучших бесплатных курсов на 2024 год! Подходит для начинающих и опытных разработчиков. Вы узнаете, как создавать конвейеры, интегрировать изменения и автоматизировать процессы. Станьте мастером CI/CD с помощью Jenkins! Рекомендация курса по Jenkins

Статью автор советует курс "Jenkins, From Zero To Hero" для DevOps и разработчиков. Курс доступен на Udemy за $9.9 во время распродаж. Если у вас есть вопросы по Jenkins или предложения по добавлению ресурсов, автор открыт к комментариям.

#Jenkins #DevOps #Udemy

Подробности: http://www.java67.com/2024/06/7-best-free-jenkins-courses-for-java.html

#en

@a_cup_of_java | Другие наши каналы
Лучшие курсы Javascript Unit Testing на Udemy в 2024

Ищете ресурсы для изучения юнит-тестирования JavaScript? В статье на Java67 представлены 5 лучших курсов на Udemy для освоения этой важной темы в 2024 году. Эти курсы помогут вам стать продвинутым разработчиком, начиная с основ тестирования и заканчивая интеграционными тестами. 11 Лучших Курсов JavaScript для Начинающих на Udemy

Ищете хорошие курсы по JavaScript? Ознакомьтесь с нашей подборкой из 11 лучших курсов для начинающих на платформе Udemy. Эти курсы помогут вам освоить основы и улучшить навыки программирования. Узнайте больше и начните учиться уже сегодня!

Подробности: http://www.java67.com/2024/06/top-5-courses-to-learn-javascript-unit.html

#en

@a_cup_of_java | Другие наши каналы
Стоит ли читать System Design Interview Book в 2024 году?

Если вы готовитесь к интервью по системному дизайну, то книга "System Design Interview - An Insider's Guide" Алекса Сю остаётся актуальной и полезной в 2024 году. Она охватывает ключевые концепции и популярные вопросы, помогая программистам и разработчикам освоить важные навыки. Лучшие курсы по системному дизайну для собеседований

Готовитесь к собеседованиям на разработчика ПО или инженера по машинному обучению? Обязательно подготовьтесь к вопросам по системному дизайну! Ознакомьтесь с курсом «Grokking the System Design» на Design Guru – одним из лучших ресурсов для этого.

Подробности: http://www.java67.com/2024/06/is-system-design-interview-book-worth.html

#en

@a_cup_of_java | Другие наши каналы
Профилирование Java-приложений: от HeapDump до Grafana

Добрый день дорогой читатель. Сегодня я дам тебе несколько советов для поиска и анализа проблем в твоем Java приложении. Мы разберем такие вещи как: HeapDump, ThreadDump, VisualVM, Grafana, HikariPool, Prometheus и Garbage Collector.


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

@a_cup_of_java | Другие наши каналы
JDK 23 and JDK 24: What We Know So Far

JDK 23, the second non-LTS release since JDK 21, has reached its second release candidate phase with a final set of 12 new features, in the form of JEPs, that can be separated into four categories: Core Java Library, Java Language Specification, HotSpot and Java Tools. We examine JDK 23 and predict what features have, or could be, targeted for JDK 24.
By Michael Redlich

Read: https://www.infoq.com/news/2024/08/java-23-so-far/

@a_cup_of_java | Другие наши каналы
Искусство ETL. Пишем собственный движок SQL на Spark [часть 7]

В предыдущих сериях (FAQ1 2 3 4 5 6 ) мы весьма подробно рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL поверх Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.
В данной части поговорим о том, как добавить в собственный диалект SQL поддержку процедур. Например,

-- library.tdl

CREATE PROCEDURE dwellTimeByMode(@signals, @target, @outPrefix,
@modes = ['pedestrian', 'non_pedestrian', 'car', 'bike'],
@groupid='cell10') AS BEGIN
LOOP $mode IN $modes BEGIN
SELECT * FROM $signals INTO "{$signals}/{$mode}" WHERE mode=$mode;

CALL dwellTime(@signals_userid_attr=userid,
@target_userid_attr=userid,
@target_grouping_attr=$groupid
) INPUT signals FROM "{$signals}/{$mode}", target FROM $target
OUTPUT INTO "{$outPrefix}/{$mode}";

ANALYZE "{$signals}/{$mode}";
ANALYZE "{$outPrefix}/{$mode}";
END;
END;

--- ... --- ... --- ... ---

-- script.tdl

CALL dwellTimeByMode(@signals=$this_month, @target=$population, @outPrefix=$this_month);


Нафига это надо?
Ну, допустим, у нас уже есть некоторое количество SQL ETL кода, наработанного за время эксплуатации инструмента в продакшене, и становится заметно, что значительная часть скриптов на разных проектах совпадает, и из раза в раз повторяется. Логично было бы вынести все эти совпадающие куски в библиотеку, чтобы держать в одном месте, да и вызывать с какими надо параметрами, когда надо. Вот прям как на примере выше.


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

@a_cup_of_java | Другие наши каналы
JSpecify 1.0.0 и nullability в Java

Рады сообщить, что JSpecify 1.0.0 теперь доступен в Maven Central: четыре аннотации, связанные с nullability — @Nullable, @NonNull, @NullMarked и @NullUnmarked — стали официальными, и, что немаловажно, обратная совместимость с ними будет гарантирована.

В новом переводе от команды Spring АйО мы подробнее рассмотрим, какие преимущества и новшества предлагает JSpecify 1.0.0, как это может повлиять на ваш проект и что нам предлагается для борьбы с NPEs.


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

@a_cup_of_java | Другие наши каналы
Сокрытие конфиденциальных данных при логировании

Всем привет! Меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. В этой статье я расскажу, как скрыть личные данные пользователей при организации логирования.

Такая необходимость возникает при отслеживании запросов, анализе ошибок и  диагностике проблем. Однако в процессе обработки персональных данных пользователей (паспортных данных, ИНН, СНИЛС и прочих документов, удостоверяющих личность) нужно учитывать, что их содержимое не подлежит разглашению. Это серьезный вопрос, который затрагивает множество аспектов: репутацию компании, доверие потребителей, законодательство. Так что задача разработчика не только связать логами всю цепочку прохождения запроса, но и исключить из них те данные, что не подлежат раскрытию.

Сегодня мы не будем сильно погружаться в детали работы той или иной технологии, а просто рассмотрим несколько доступных решений.


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

@a_cup_of_java | Другие наши каналы
Три способа выучить Java в 2024 году

Планируете выучить Java? Отличное решение! В статье на Java67 рассказывается, что лучший способ выучить Java в 2024 году — это комбинация онлайн-курсов, чтения профильных книг и выполнения проектов. Основывайте своё обучение на курсах, затем углубляйтесь с книгами и закрепляйте знания на практике. Лучшие книги для изучения программирования

В статье представлен перечень книг по различным темам программирования: от Core Java и Spring до алгоритмов и интервью на кодирование. Идеально подходит для тех, кто собирается углубить свои знания или готовится к собеседованиям.

Подробности: http://www.java67.com/2024/06/3-ways-to-learn-java-programming-in.html

#en

@a_cup_of_java | Другие наши каналы
Как считать сумму и разность комплексных чисел в Java?

В статье описывается, как создать программу для вычисления суммы и разности комплексных чисел на Java. Применяя принципы объектно-ориентированного программирования, создается класс ComplexNumber, который инкапсулирует реальные и мнимые части чисел и предоставляет методы для их суммирования и вычитания.
Подробности: http://www.java67.com/2016/10/how-to-calculate-sum-and-difference-of-two-complex-numbers-in-java.html

#en

@a_cup_of_java | Другие наши каналы
AlgoMonster: Стоит ли использовать для подготовки к интервью?

Ищете платформу для подготовки к кодинговым и системным дизайнам интервью? Обратите внимание на AlgoMonster! Разработанный инженерами Google, этот сервис предлагает структурированный подход к обучению, включая 48 паттернов кодирования и интерактивные задачи. Гарантированное предложение от компании после завершения курса!

Подробности: http://www.java67.com/2024/06/is-algomonster-worth-for-coding-and.html

#en

@a_cup_of_java | Другие наши каналы
🎓 Бесплатные курсы Python для начинающих в 2024

Ищете лучшие бесплатные курсы Python? Ознакомьтесь с нашей подборкой из 6 курсов, которые позволят вам начать программировать в 2024 году! Эти онлайн-курсы помогут вам изучить основные концепции Python, такие как работа с данными, функции и циклы. Начните обучение сейчас! Лучшие бесплатные курсы по Python для начинающих

Нашли отличные бесплатные курсы по Python? На YouTube, FreeCodeCamp и Scrimba - идеальные ресурсы для новичков. Комментируйте, если знаете другие полезные курсы, и мы добавим их в список. Удачного обучения!

Подробности: http://www.java67.com/2018/02/5-free-python-online-courses-for-beginners.html

#en

@a_cup_of_java | Другие наши каналы
Бинарный поиск на пальцах

В этой статье мы разберемся с тем, как работают массивы, что такое алгоритмы, и как устроен бинарный поиск "под капотом"


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

@a_cup_of_java | Другие наши каналы
Делаем телеграм-бот для сохранения сообщений в блокчейн

Привет, я Дмитрий и хочу поделиться с вами как я делал свой телеграм-бот для сохранения сообщений из чатов в блокчейн на языке java. Вообще идея была в том, чтобы научиться быстро и удобно увековечивать некоторые особо важные сообщения, так чтобы они оставались без изменений и вне зависимости от того, что будет с чатом где они были размещены или даже с самим Телеграмом.


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

@a_cup_of_java | Другие наши каналы
Spring News Roundup: Milestone Releases for Spring Boot, Cloud, Security, Session and Spring AI

There was a flurry of activity in the Spring ecosystem during the week of August 19th, 2024, highlighting: point and milestone releases of Spring Boot, Spring Data, Spring Cloud, Spring Security, Spring Authorization Server, Spring Session, Spring for Apache Kafka and Spring for Apache Pulsar.
By Michael Redlich

Read: https://www.infoq.com/news/2024/08/spring-news-roundup-aug19-2024/

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