Чашечка Java
10K subscribers
3.3K photos
7 videos
50 files
4.83K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Реактивный велосипед

На одном из проектов встретился Spring Reactor. Хорошая технология асинхронных потоков. Много копий сломано по поводу ее использования. Но сейчас не об этом. А о том, как я изобрел велосипед.


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

@a_cup_of_java | Другие наши каналы
Presentation: Harnessing Exotic Hardware: Charting the Future of JVM Performance

Monica Beckwith discusses the world of the JVM and its evolving relationship with exotic hardware. She presents a hypothetical scenario where GPU optimization plays a pivotal role.
By Monica Beckwith

Read: https://www.infoq.com/presentations/jvm-exotic-hardware/

@a_cup_of_java | Другие наши каналы
Backend Developer (Java) HR TECH

Компания: Гринатом — IT-интегратор Росатома
Опыт работы: от 6 лет
Полная занятость, удаленная работа/офис

Требуемый опыт:
— разработка и поддержка микросервисов на Java;
— работа с реляционным базами данных (PostgreSQL);
— проведение Сode Review;
— знание основных методологий разработки программного обеспечения, принципов OOП, шаблонов проектирования, принципов SOLID, DRY, KISS;
— практика использования Test Containers в интеграционных тестах; отличное знание Spring/Spring Boot (Core, MVC/Webflux, Data/Integration, Security, Actuator, Auto configuration, AOP);
— работа с Kafka;
— хорошее знание Maven/Gradle и CI/CD систем(Gitlab/Jenkins);
— профилирование кода, анализ дампов памяти, анализ логов, метрик и трассировок, тонкая настройка JVM.

Условия:
— конкурентная ЗП и премии;
— оформление по ТК РФ;
— карьерный рост;
— ДМС со стоматологией
— собственная платформа для обучения;
— конференции и тренинги.

Подробности и отклик: https://tprg.ru/4wo6
Разбираемся с Vespa. Часть 1

Эта статья открывает серию из трёх материалов, посвящённых работе с поисковой системой хранения данных Vespa.

Из этой статьи вы узнаете:

1) Как настроить конфигурацию Vespa.

2) Как запустить сервер конфигурации Vespa в Docker.

3) Как выглядит структура схемы данных.

4) Как выполнить фильтрацию полей в результатах поиска.

5) Как отключить валидацию схемы данных и файла конфигурации для локальной отладки.


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

@a_cup_of_java | Другие наши каналы
Expression Problem и Объектные алгебры

Expression Problem (EP) - это классическая задача в программировании на совмещение несовместимого.

Автор задачи (Philip Wadler) формулирует следующие цели: создать такую абстракцию, что позволяла бы расширять иерархию в двух направлениях: добавлять новые классы и добавлять новые методы для обработки иерархии, сохраняя при этом строгую статическую типизацию и не требуя изменений существующего кода.

В динамически типизируемых языках мы бы могли добавить или переопределить метод на лету с помощью трюка, ставшего известным под неказистым названием monkey patching (хоть первоначально речь шла совсем не про обезьян, а про партизан - guerrilla).

А вот какие трюки применяют в статически типизированных языках рассмотрим под катом.


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

@a_cup_of_java | Другие наши каналы
Мы сопоставили языки программирования с специализацией World Of Warcraft

Привет, друзья разработчики и геймеры!

Мы с командой разработчиков "*** Telecom" решили весело и с увлечением сопоставить языки программирования с классами из мира World of Warcraft. Почему бы не объединить наше любимое хобби с нашей профессиональной деятельностью? Давайте вместе погрузимся в этот волшебный мир и узнаем, как каждый язык программирования может быть аналогом одного из классов в WoW!


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

@a_cup_of_java | Другие наши каналы
Упрощённая сортировка объектов в Java 8

Класс Comparator в Java 8 стал более мощным и удобным благодаря лямбда-выражениям и методам ссылок. Актуальный пример показывает, как можно сортировать объекты с использованием новых возможностей JDK 8. Статья содержит 10 примеров для ежедневных задач разработчика. Узнайте больше: [ссылка на статью] Методы сортировки книг в Java 8

Узнайте, как сортировать списки объектов книг в Java 8 с помощью Comparator. Научитесь использовать лямбда-выражения, ссылки на методы и статические методы для сортировки по различным критериям: году публикации, цене и названию. Это значительно упрощает код и делает его более читаемым. Сортировка с учетом null значений в Java 8

В статье рассмотрены методы сортировки объектов с использованием Comparator в Java 8. Основное внимание уделено обработке null значений с помощью методов nullsFirst() и nullsLast(). Примеры кода показывают, как упорядочить книги по году, цене и названию, сохраняя при этом корректную обработку отсутствующих данных.

Подробности: http://www.java67.com/2023/10/10-example-of-comparator-and-sorting-in.html

#en

@a_cup_of_java | Другие наши каналы
Spring Ecosystem Delivers Numerous Milestone Releases

There was a flurry of activity in the Spring ecosystem during the week of July 15th, 2024, highlighting milestone releases of: Spring Boot 3.4.0-M1; Spring Framework 6.2.0-M6; Spring Security 6.4.0-M1; Spring Session 3.4.0-M1; Spring Integration 6.4.0-M1; and Spring Modulith 1.3.0-M1; Spring AMQP 3.2.0-M1; and Spring for Apache Kafka 3.3.0-M1.
By Michael Redlich

Read: https://www.infoq.com/news/2024/07/spring-releases-jul15-2024/

@a_cup_of_java | Другие наши каналы
Тестируем качественные характеристики. Как сделать сложное простым

Привет, Хабр! Меня зовут Юрий Заковряшин. Я занимаюсь разработкой ПО более 40 лет, преподаю курсы по технологиям разработки программного обеспечения и программированию на платформе Java в СПбПУ Петра Великого.

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


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

@a_cup_of_java | Другие наши каналы
JEP 481: Third Preview of Scoped Values API Brings Key Enhancements in JDK 23

JEP 481, Scoped Values (Third Preview), formerly known as Extent-Local Variables (Incubator), offers a third preview, with one change, to gain additional experience and feedback from one round of incubation and two rounds of preview. This feature enables the sharing of immutable data within and across threads.
By A N M Bazlur Rahman

Read: https://www.infoq.com/news/2024/07/jep-481-enhanced-scoped-values/

@a_cup_of_java | Другие наши каналы
Разбираемся с MavenGate. Настолько ли он страшен на самом деле

Привет, Хабр!

Меня зовут Михаил, я исследователь Центра научных исследований и перспективных разработок, в круг моих обязанностей входит разработка мобильных приложений Android и исследование безопасности разрабатываемых решений. Сегодня рассмотрим, так ли страшен "черт", как его малюют, или насколько страшен MavenGate на самом деле.


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

@a_cup_of_java | Другие наши каналы
Рекурсия в Java с примером решения задачи с LeetCode

Рекурсивные методы в Java — это методы, которые вызывают сами себя и требуют осторожности с их обращением.

Чтобы не увидеть «StackOverflowError» на экране, нужно помнить о двух штуках: базисе и шаге рекурсии.

Базис — это условие выхода из рекурсии, а шаг — это вызов методом самого себя с измененными параметрами.

Самый частый пример, который можно встретить в интернете при попытке найти информацию о рекурсии — нахождение факториала числа. Быстренько пройдемся по нему перед рассмотрением более интересной задачки с leetCode.


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

@a_cup_of_java | Другие наши каналы
Java News Roundup: JDK 23 in Rampdown Phase Two, Graal Development Kit, Payara Platform, JSpecify

This week's Java roundup for July 15th, 2024 features news highlighting: JDK 23 in Rampdown Phase Two: the July 2024 Payara Platform release; Graal Development Kit for Micronaut 4.5.0; GraalVM for JDK 22 Community 22.0.2; JSpecify 1.0.0, MicroProfile 7.0-RC1, Open Liberty 24.0.0.7; and the July 2024 Oracle Critical Patch Update.
By Michael Redlich

Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul15-2024/

@a_cup_of_java | Другие наши каналы
Топ 5 паттернов проектирования для Spring Boot приложений

В новом переводе от команды Spring АйО вы узнаете про 5 основных паттернов проектирования, которые часто применяются в Spring Boot приложениях:

1. Singleton

2. Factory Method

3. Repository

4. Service Layer

5. Facade

Эти паттерны, несмотря на их кажущуюся простоту и широкое распространение, играют ключевую роль в улучшении чистоты, упрощении и повышении поддерживаемости вашего кода.


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

@a_cup_of_java | Другие наши каналы
14 конференций осени и 14 видеозаписей докладов

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

Кратко описали их все для Хабра, и каждой добавили по видеозаписи доклада — чтобы можно было не просто читать красивые слова, а сразу увидеть конкретику и заодно узнать что-то полезное.

Вот общий список, а дальше в посте — отдельно про каждую.

SmartData (инженерия данных)
DotNext (.NET)
Flow (системный и бизнес-анализ)
PiterPy (Python)
VideoTech (видеотехнологии)
GoFunc (Go)
КаргоКульт (HR-практики)
Joker (Java)
Heisenbug (тестирование)
Mobius (мобильная разработка)
SafeCode (безопасность приложений)
DevOops (девопс)
HolyJS (JavaScript)
I'ML (использование ML)


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

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

Обязанности:
— Участие в полном цикле разработки.
— Проектирование/разработка back-end и API.
— Обеспечение чистоты кода, тестирование, код-ревью, релизы.

Требования:
— Знание Java/Kotlin, Spring.
— Понимание микросервисной архитектуры.
— Опыт SQL/NoSQL.
— Опыт командной работы, код-ревью, git flow.

Откликайтесь тут

#вакансии #работа
Основные принципы проектирования микросервисов

Микросервисы — это будущее разработки ПО. Они помогают создавать масштабируемые и независимые приложения. В статье обсуждаются 10 ключевых принципов проектирования микросервисов, таких как принцип единой ответственности и слабая связанность. Ознакомьтесь с подробностями для лучшего понимания! Лучшие принципы дизайна для микросервисов

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

Подробности: http://www.java67.com/2023/09/top-10-microservices-design-principles.html

#en

@a_cup_of_java | Другие наши каналы
Flyway + Spring Boot: настройка и написание миграций баз данных

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Flyway в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы базы данных вместе с Amplicode!


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

@a_cup_of_java | Другие наши каналы
Разница между Веб-сервером, Сервером приложений и Контейнером сервлетов

Статья объясняет различия между веб-сервером, сервером приложений и контейнером сервлетов. Веб-сервер обслуживает статические страницы, сервер приложений выполняет динамический код, а контейнер сервлетов управляет жизненным циклом сервлетов и JSP. Примеры: Apache для веб-сервера, JBoss для сервера приложений и Tomcat для контейнера сервлетов. Подготовка к интервью по Spring

Готовитесь к интервью? Статья предлагает список вопросов по Spring Boot, Cloud, MVC и микросервисам, а также полезные курсы. Узнайте, какие аннотации использовать и как лучше подготовиться. Подпишитесь, чтобы не пропустить обновления и скидки.

Подробности: http://www.java67.com/2016/06/3-difference-between-web-server-vs-application-server-vs-servlet-container.html

#en

@a_cup_of_java | Другие наши каналы
Быстрый старт: Docker + SMTP + Java/Go

Не так давно у меня появилась необходимость на нескольких проектах сделать регистрацию с подтверждением email, так же хотелось минимизировать затраты и исключить лишние телодвижения, так сказать методом ctrl+c ctrl+v, без танцев с бубном. Так же нам не нужно принимать почту и прочее, просто отправка, не более

P.s. Для прожженных отцов разработки ничего нового тут не будет

Итак, поехали ;-)


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

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