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

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

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

Другие каналы: @tproger_channels
Download Telegram
Безопасность web приложений с использованием Identity Provider

В современном цифровом мире, где взаимодействие с онлайн-ресурсами и web приложениями стало неотъемлемой частью нашей повседневной жизни, безопасность и управление личной идентификацией стали ключевыми аспектами. Именно в этом контексте становится крайне важным понятие “Identity Provider” или, сокращённо, IdP.

Identity Provider представляет собой централизованный сервис, который играет решающую роль в процессе аутентификации пользователей в сети. Это технологическое решение позволяет пользователям идентифицироваться и получать доступ к различным ресурсам и сервисам, используя единый набор учётных данных или методов аутентификации.

IdP обеспечивает не только процесс аутентификации, но и авторизации, что делает его краеугольным камнем в управлении идентификацией в цифровом мире. Он предоставляет удобный и безопасный механизм для учета пользователей, определения их ролей и разграничения доступа к ресурсам и данным на основе этих ролей. Таким образом, IdP способствует усилению безопасности и контролю над доступом, одновременно облегчая пользовательский опыт.

В этом эссе мы рассмотрим более подробно, как происходит взаимодействие с Identity Provider, его преимущества и роль в обеспечении безопасности данных и доступа в цифровой эпохе.


Читать: https://habr.com/ru/articles/779170/?utm_campaign=779170
3
Польза создания однородных задач для параллельного вычисления

Как правильно использовать возможности параллельного программирования?
Зачем программистам математика и зачем знать алгоритмы?

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

Весь код из статьи находится здесь.


Читать: https://habr.com/ru/articles/779188/?utm_campaign=779188
4
Немного о гигиене Java кода

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


Читать: https://habr.com/ru/companies/pvs-studio/articles/779300/?utm_campaign=779300
Генерация PDF-документации из OpenAPI-спецификации в SpringBoot-приложении

При интеграции с нашим приложением, написанном на "классическом" SpringBoot-стэке встал вопрос о предоставлении описания АПИ партнеру. Фактически из коробки SpringBoot позволяет развернуть на стороне приложения тонкий Swagger-клиент и сгенерировать на лету спецификацию в формате Swagger (OpenAPI), которая представляет собой JSON особой структуры (хотя если читатель не знает, что это, наверное нет никакого смысла вообще читать эту статью).

Проблема осложнялась тем, что наш партнер разрабатывал на 1С, и во всех современных спецификациях для него были слишком сложно освоиться, поэтому встала задача предоставить документацию в человекориентированном виде - DOC, PDF и прочее.

В ходе изысканий в google, была найдена статья - https://www.baeldung.com/swagger-generate-pdf, и советы на stackoverflow, которые фактически повторяли эту статью. Фактически было найдено 2 варианта решения:

1) Использовать онлайн-конвертер https://www.swdoc.org/

2) Настроить цепочку из 3 maven-плагинов:


Читать: https://habr.com/ru/articles/779542/?utm_campaign=779542
👏511
Kafka Connect на примере Debezium PostgresConnector

В предыдущей статье про микросервисную архитектуру на основе событий с использованием Kafka Streams достаточно поверхностно был упомянут io.confluent.connect.jdbc.JdbcSourceConnector, который использовался для вычитания данных из SQLite и отправки их в топик Kafka. Сейчас я бы хотел более подробно разобрать технологию Kafka Connect на примере io.debezium.connector.postgresql.PostgresConnector. Как и в прошлый раз, я реализовал небольшой демо проект, код которого доступен на GitHub. В проекте кода совсем немного, однако чтобы понять все настройки, примененные в коннекторе, придется достаточно подробно пройтись по теоретической части. Итак, приступим.


Читать: https://habr.com/ru/articles/779620/?utm_campaign=779620
👍71
Apache Pinot 1.0 Provides a Realtime Distributed OLAP datastore

Apache Pinot is an open source column-oriented distributed data store written in Java. Pinot is designed to use Online Analytical processing (OLAP) in order to answer multi-dimensional analytical (MDA) queries with low latency.
By Johan Janssen

Read: https://www.infoq.com/news/2023/12/apache-pinot/
🔥3🎉1
Spring Cloud Gateway. Единая точка входа или отказа: путь к non-blocking API gateway

Привет, Хабр! Меня зовут Никита Летов, я техлид бэкенд-разработки сервисов дистанционного банковского обслуживания Росбанка для физических лиц, или как модно сейчас говорить, ретейла. В этом посте я расскажу, что такое входная точка в приложение, когда в ней появляется необходимость и какие вообще задачи решает паттерн API Gateway. Мы рассмотрим классический блокирующий подход на примере гейтвея Netflix Zuul 1.x, проблемы, связанные с его эксплуатацией, а также реактивный Spring Cloud Gateway и сложности перехода на него. В заключение сравним два подхода.


Читать: https://habr.com/ru/companies/rosbank/articles/779770/?utm_campaign=779770
👍71
Java News Roundup: JDK 22 in Rampdown, JDK 23 Expert Group, Spring Cloud 2023.0, TornadoVM 1.0

This week's Java roundup for December 4th, 2023 features news highlighting: JDK 22 having moved to Rampdown Phase One; formation of the JDK 23 expert group; JEP 464, Scope Values (Second Preview) targeted for JDK 22; Spring Cloud 2023.0.0; TornadoVM 1.0.0; and JHipster Lite 1.0.0.
By Michael Redlich

Read: https://www.infoq.com/news/2023/12/java-news-roundup-dec04-2023/
🥰3🔥1
​​Мастерство чистого кода: учимся писать тесты
 
Разработка надёжных программ невозможна без тщательного тестирования. В этой статье подробно разобрали процесс создания интеграционных тестов для небольшого сервиса с использованием ценных для Java-разработчиков инструментов, вроде Testcontainers и Wiremock.
 
Авторы демонстрируют реализацию тестирования на примере кода и советуют, как организовать процесс.
🥰3
Mockito и как им пользоваться

Привет, Хабровчане!

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

Несколько строк кода, и вы уже создаете моки для ваших сервисов и DAO! Mockito предоставляет понятный API для мокирования, который делает тесты не только проще в написании, но и более читабельными.


Читать: https://habr.com/ru/companies/otus/articles/780090/?utm_campaign=780090
👍6😁21👎1🎉1
Stream API Evolution: A Closer Look at JEP 461's Stream Gatherers

After its review concluded, JEP 461, Stream Gatherers (Preview), has been completed for JDK 22. This JEP proposes to enhance the Stream API to support custom intermediate operations. "This will allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations."
By A N M Bazlur Rahman

Read: https://www.infoq.com/news/2023/12/stream-api-evolution/
👍5🔥1😁1
Что требуется для развития рынка цифровых двойников

Ранее в блоге мы рассказывали о том, что такое цифровые двойники, теперь выясним, какие перспективы развития технологии на отечественном рынке.

Цифровые двойники входят в топ-5 мировых стратегических технологических трендов. Ожидается, что в 2024 году технологию внедрят 250 отечественных предприятий, затраты составят 145 млрд рублей по данным дорожной карты «Технет» Национальной технологической инициативы. Давайте разберемся, реальны ли эти прогнозы для России.


Читать: https://habr.com/ru/articles/780036/?utm_campaign=780036
2👍1🔥1👏1
Операция «K». Ищем баги в коде IntelliJ IDEA

В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошибок и отправим наши правки разработчикам. Крупный проект, Open Source база и использование статического анализатора при разработке. Сложная задача для PVS-Studio.


Читать: https://habr.com/ru/companies/pvs-studio/articles/780560/?utm_campaign=780560
1
Moravio как компания по разработке CRM

Read: https://www.thejavaprogrammer.com/moravio-as-crm-development-company/
😁2
Spring Boot 3.2 Delivers Support for Virtual Threads and Modern RestClient and JdbcClient

The Spring Boot team released Spring Boot 3.2 in November 2023. This latest release is packed with features, the most noteworthy of which is the support for Virtual Threads and Coordinated Restore at Checkpoint (CRaC). Other features include SSL Bundle reloading, Rest Client and JDBC Client interface support, observability improvements, and many others.
By Sirisha Pratha

Read: https://www.infoq.com/news/2023/12/spring-boot-virtual-threads/
3🎉1
JEP 423: Introducing Region Pinning to G1 Garbage Collector in OpenJDK

After its review concluded, JEP 423, Region Pinning for G1, has been Integrated into JDK 22. This JEP proposes to reduce GC latency by implementing region pinning for the G1 garbage collector. This will extend G1 so that arbitrary regions may be pinned during both major and minor collection operations, so that disabling the garbage collection process may be avoided while implementing JNI.
By A N M Bazlur Rahman

Read: https://www.infoq.com/news/2023/12/region-pinning-to-g1-gc/
👏2👍1🥰1
10 лучших курсов и сертификаций по науке о данных и машинному обучению в 2024 году - Best of Lot

Предположим, что сегодня вы работаете в сфере технологий в качестве программиста или инженера-программиста. В таком случае, я уверен, вы слышали о таких терминах, как Data Science, Machine Learning, Deep Learning, Artificial Intelligence и т. д. Это новейшие технологии, оказывающие влияние на все отрасли, точно так же, как ИТ, когда они появляются в первый раз. Неважно, работаете ли вы в банке или страховом секторе, воздушном пространстве или обороне. На все сферы повлияли ИТ, а в скором времени их затронут машинное обучение и искусственный интеллект. Поэтому в 2024 году очень важно изучать Data Science и машинное обучение, и если вы ищете хорошие ресурсы, такие как курсы и сертификаты, то вы пришли по адресу.


Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2018/10/top-10-data-science-and-machine-learning-courses.html
👏3👍2
Я нашёл сид Мэла (melharucos) в Майнкрафте

Да, название этой статьи - не обман. Я действительно сумел найти сид хардкорного выживания Мэла. Сам он притом с нами сидом не поделился.

Сам сид: 3483555484082087413


Читать: https://habr.com/ru/articles/781002/?utm_campaign=781002
🔥8😁41👍1
Простой сервис аутентификации. SpringBootSecurity

Напишем простой сервис аутентификации с выдачей JWToken. Для реализации будем использовать Java 17, SpringBoot 3.2.0, h2, Maven в памяти.

GitLab


Читать: https://habr.com/ru/articles/781066/?utm_campaign=781066
5😢2👍1
Топ 10 сайтов, где можно БЕСПЛАТНО научиться кодированию JavaScript в 2024 году - Best of Lot

Здравствуйте, ребята, если вы хотите выучить JavaScript и ищете лучшие сайты для БЕСПЛАТНОГО изучения программирования на JavaScript, то вы пришли по адресу. Ранее я рассказывал о лучших бесплатные курсы JavaScript и платные курсы JavaScript, а в этой статье я перечислю лучшие сайты для изучения JavaScript БЕСПЛАТНО. Мы живем в мире интернета, который полон ресурсов. Вы можете узнать все, что хотите, и при этом не потратить слишком много денег. Если вы собираетесь изучать JavaScript, есть множество сайтов, где вы можете изучать JavaScript онлайн БЕСПЛАТНО.

Вопросы и учебники для собеседования по Java

Read: http://www.java67.com/2019/01/best-websites-to-learn-javascript-online.html
👏3🎉21
Java News Roundup: JHipster 8.1, Piranha Cloud 23.12, Open Liberty 23.0.0.12, Tomcat Releases

This week's Java roundup for December 11th, 2023 features news highlighting: OpenJDK early access releases, Open Liberty 23.0.0.12, Infinispan 15.0.0-Dev06, JHipster 8.1.0, Piranha 23.12.0, Apache Tomcat 11.0.0-M15, 10.1.17, 9.0.84 and 8.5.97 and the debut of the Payara Virtual Conference.
By Michael Redlich

Read: https://www.infoq.com/news/2023/12/java-news-roundup-dec11-2023/
2🥰1🎉1