ar
Feedback
Чашечка Java

Чашечка Java

الذهاب إلى القناة على Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

إظهار المزيد
8 573
المشتركون
+124 ساعات
لا توجد بيانات7 أيام
+230 أيام
أرشيف المشاركات
Java Spring Reactive WebSession на примере Рассмотрим простой пример создания сессии, её использования и инвалидации в реактивном стеке Spring'а. Читать: https://habr.com/ru/articles/794849/?utm_campaign=794849

Автоматизируем проверку содержимого PDF-файлов с помощью pdf-test Многие сервисы в различных отраслях генерируют печатные формы счетов, отчётов и прочего в формате PDF. И, конечно, перед специалистами тестирования встаёт вопрос о проверке этих документов. Обычно получается так, что сам факт генерации документа достаточно несложно покрыть автотестами, а вот проверку содержимого оставляют для ручного тестирования. Однако в подобных документах может быть много незаметных мест, различий и неточностей, которые человек может просто не заметить. Поэтому появляется необходимость проверку этих документов автоматизировать. В этой статье мы познакомим вас с инструментом, который достаточно просто может закрыть потребность в проверке содержания PDF-файлов. Это инструмент с открытым исходным кодом — pdf-test. Он по сути является обёрткой pdfbox и позволяет из коробки использовать основные мэтчеры, не задумываясь о том, чтобы писать свои или о том, как именно парсить документ. Рассмотрим далее его применение на языке Java. Читать: https://habr.com/ru/companies/simbirsoft/articles/794728/?utm_campaign=794728

Задачи от Tinkoff для Junior Java developers Отличная тренировка для начинающих разработчиков на знание Java core. В статье будет представлено описание 5 задач с разным уровнем сложности. Надеюсь, эти задачи будут хорошей тренировкой для тебя и ты сможешь закрепить свои знания на практике. Позже появится мое решение на GitHub. Читать: https://habr.com/ru/articles/794588/?utm_campaign=794588

Java News Roundup: New JEP Candidates, Milestone Releases for Spring Projects and Micrometer This week's Java roundup for Feb
Java News Roundup: New JEP Candidates, Milestone Releases for Spring Projects and Micrometer This week's Java roundup for February 12th, 2024 features news highlighting: new JEP candidates, JEP 465 and JEP 466, milestone and point releases of Spring Framework, Spring Data, Micrometer and Project Reactor, Hibernate Search 7.1.0-RC1 and Infinispan 15.0.0.Dev01. By Michael Redlich Read: https://www.infoq.com/news/2024/02/java-news-roundup-feb12-2024/

Spring Boot. Реактивный асинхронный неблокирующий REST vs традиционный синхронный блокирующий В статье простым языком рассказываю об особенностях работы реактивного веб-сервиса в сравнении с традиционным REST. Для комфортного чтения пригодятся базовые знания Java, Spring Boot. Читать: https://habr.com/ru/articles/793494/?utm_campaign=793494

Сборка в Gitlab как маркер здоровья архитектуры Не так давно мне довелось настраивать СI/CD для среднего по размеру проекта, состоящего из +-20 микросервисов и 5 переиспользуемых библиотек. Изначально все микросервисы и библиотеки жили в собственных репозиториях и я настроил CI/CD индивидуально для каждой репы, вынеся общие скрипты и настройки в отдельный проект. Так мы пожили какое-то время, после чего пришла идея объединить все в монорепу, для удобства сопровождения и большей прозрачности при разработке. Для монорепозитория CI/CD был реализован следующим образом: каждый сервис содержит свой файл .gitlab-ci.yml с описанием пайплайна, при этом корневой файл сборки проекта содержал директиву включения/исключения CI-файлов конкретных сервисов в зависимости от того были ли в них или их зависимостях изменения. Структура проекта имеет следующий вид: |- root |- services |- service1 |- .gitlab-ci.yml |- … |- shared |- lib1 |- .gitlab-ci.yml |- … | - .gitlab-ci.yml И была среди прочих компонентов одна непримечательная библиотека common-dto. Из названия создаётся впечатление, что в ней должны лежать различные верхнеуровневые абстракции для DTO, от которых наследуется большая часть сервисных DTO. Однако все оказалось не так просто. Ещё во время сбора монорепы я обратил внимание, что в этой библиотеке как-то многовато специфических DTO, которые принадлежат конкретным сервисам. Оказалось, что туда были положены все DTO, используемые более чем в одном сервисе. Не сложно догадаться, что от common-dto зависили ВСЕ сервисы. При этом вопреки правилу чистой архитектуры, которое гласит, что компонент от которого зависят многие должен быть наиболее стабильным, common-dto дополнялась буквально в каждом втором merge-request'e, из-за чего все компоненты системы пересобирались (это занимает +- 20 мин).Таким образом сборка проекта в очередной раз подсветила проблемную архитектуру. Читать: https://habr.com/ru/articles/794420/?utm_campaign=794420

Предлагается расширенное профилирование для Java Flight Recorder Read: https://www.infoworld.com/article/3712811/advanced-pro
Предлагается расширенное профилирование для Java Flight Recorder Read: https://www.infoworld.com/article/3712811/advanced-profiling-proposed-for-java-flight-recorder.html#tk.rss_java

Я уже 15 минут рассказываю про Java Core на собеседовании и начинаю понимать, что речь не про индонезийскую музыку:

Как сделать код безопасным? Помогут всего 5 шагов. Каких? Узнаете в статье МТС RED. Подробно рассказали, как усилить безопасн
Как сделать код безопасным? Помогут всего 5 шагов. Каких? Узнаете в статье МТС RED. Подробно рассказали, как усилить безопасность на этапах проектирования, разработки, сборки и как управлять уязвимостями и рисками.   Переходите по ссылке, изучайте и делайте свои продукты безопасными. Реклама

Введение в коллекции Java Собственно говоря, зачем эта статья и для кого? Для тех, кто только начинают свой путь в изучении Java. В этой статье я не буду сильно углубляться в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться достаточно хотя бы на базовом уровне понять, что это такое и с чем это «едят». Читать: https://habr.com/ru/articles/794178/?utm_campaign=794178

С нуля до плагина JMeter: пишем свой продукт без опыта От проблемы к практике: как привязать JMeter к Allure Report если нет опыта программирования, но очень хочется Читать: https://habr.com/ru/articles/794114/?utm_campaign=794114

Применение ООП на практике Чаще всего задачу можно решить интуитивно понятным процедурным способом. Однако самый простой вариант не всегда самый лучший. Предлагаю посмотреть на примере реальной задачи, как можно сделать решение объектно-ориентированным, и какую пользу это может принести. Читать: https://habr.com/ru/companies/pvs-studio/articles/793900/?utm_campaign=793900

DoorDash Uses CockroachDB to Create Config Management Platform for Microservices DoorDash created a configuration management
DoorDash Uses CockroachDB to Create Config Management Platform for Microservices DoorDash created a configuration management platform to help its logistics team maintain the growing number of business preferences and configuration values. The company used CockroachDB for persistence and simplified the architecture compared with the previous solution. The new platform enables experimentation, improves configuration value lifecycle, and provides flexibility and extendibility. By Rafal Gancarz Read: https://www.infoq.com/news/2024/02/doordash-config-cockroachdb/

Использование Postgres и JSONB для хранения товаров, характеристик и цен Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различные характеристики и цену, зависящую от характеристик. На нашем проекте применяется принцип CQRS: запись осуществляется в Postgres, чтение происходит из OpenSearch, а данные между ними перемещаются по шине, реализованной на Kafka. Такой подход обусловил использование реляционной БД для решения несвойственной ей задачи. Чтобы увидеть, почему эта задача не нак проста, как кажется с первого взгляда, представим, что в нашем каталоге есть футболки мужские всего с двумя атрибутами: цвет и размер. Мы хотим хранить товар с названием "Футболка Junior Developer", она представлена в синем, красном и зеленом цветах, и каждый цвет доступен в нескольких размерах. Добавляя немного сложности, представим, что цена конкретной футболки также варьируется в зависимости от цвета и размера. Как представить эту сущность в реляционной базе данных, с учетом того, что продавец футболки может в какой-то момент добавить новые атрибуты для своего товара, например, габариты упаковки для отправки (длина, ширина, высота)? С одной стороны, можно использовать подход: Entity-Attribute-Value. Он позволяет гибко настраивать связи между сущностями, их атрибутами и значениями, сохраняя возможность динамического добавления новых атрибутов сущности. Однако у такого подхода есть свои недостатки. На них останавливаться не буду - в статье: "Замена EAV на JSONB в PostgreSQL" они приведены, также там есть сравнение по производительности и памяти EAV и JSONB. Читать: https://habr.com/ru/articles/793438/?utm_campaign=793438

PECS и WildCards на пальцах Данная статья не научный труд. Это простое объяснение, зачем введены понятия PECS и WildCards, что бы понять и запомнить. Читать: https://habr.com/ru/articles/793410/?utm_campaign=793410

Автоматическая проверка названий тестовых методов для Java Без сомнений, автоматические тесты важны для поддержания высокого качества кода, снижения вероятности повторного возникновения ранее обнаруженных ошибок и уменьшения времени подготовки к релизу. Но также не менее важно обеспечивать качество и соответствие стандартам кода самих тестов. В ряде случаев для проверок можно использовать существующие инструменты проверки стиля кода (checkstyle, pmd, sonarqube), но кроме самого кода, хороший тест также должен иметь осмысленные названия тестовых методов и давать адекватное описание причины возникшей ошибки. В этой статье мы рассмотрим использование maven-плагина статического анализа jtcop для поддержания единого стандарта именований для тестового кода. Читать: https://habr.com/ru/companies/otus/articles/792982/?utm_campaign=792982

Как я перешёл на тёмную сторону: путь из Андроида в бэкенд Привет, Хабр! Меня зовут Андрей. 7 лет я разрабатываю под Android. Год назад я писал код для мобильного приложения банка и особо не задумывался о переходе на другие задачи. В один прекрасный день мне прилетела таска — добавить параметр в диплинк на Андроиде. Потом меня попросили добавить его ещё и на бэке. Я закоммитил, запушил, проверил — всё работает. Ребята в шутку предложили мне перейти в бэкендеры из Андроида. Тут я задумался, а шутка ли это, челлендж показался мне интересным. Расскажу о своих экспериментах с бэком в формате дневника — вдруг вы решите повторить мой опыт или поделитесь, как проходили этот путь сами. Читать: https://habr.com/ru/companies/alfa/articles/791772/?utm_campaign=791772

Apache Pekko: Simplifying Concurrent Development With the Actor Model Apache Pekko is an open-source framework designed to si
Apache Pekko: Simplifying Concurrent Development With the Actor Model Apache Pekko is an open-source framework designed to simplify the development of concurrent, distributed, resilient, and elastic applications. Leveraging the Actor Model, Pekko offers high-level abstractions for concurrency, allowing developers to focus on business logic rather than low-level implementation details. By Andrea Messetti Read: https://www.infoq.com/news/2024/02/apache-pekko-actor/