Чашечка Java
Відкрити в Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Показати більше8 292
Підписники
-124 години
-167 днів
-7930 днів
Архів дописів
8 291
Test-Driven Development: как полюбить модульное тестирование
Как и многие, я, как мог, сопротивлялся Test-Driven Development. Я не понимал, почему тесты нужно писать перед реализацией. Почему мы должны выворачивать разработку наизнанку и переворачивать естественный, как мне тогда казалось, процесс, с ног на голову.
Но, так или иначе, разработка через тестирование настигла и меня. Да, до сих пор получается не идеально, но значимость модульных тестов сейчас мне видится неоспоримой.
И об этом мы поговорим в статье ниже.
Мы разберём страхи, останавливающие разработчика перед тем, чтобы начать, наконец, писать тесты. Выявим очевидные преимущества. Обсудим основные правила разработки через тестирование. И подкрепим всё это реальными примерами.
Читать: https://habr.com/ru/companies/sberbank/articles/851052/?utm_campaign=851052
@a_cup_of_java | Другие наши каналы
8 291
Оптимистические и пессимистические блокировки на примере Hibernate (JPA)
Привет, Хабр! Давно хотел стать частью «деврел» сообщества: писать статьи, участвовать автором в митапах и т. д. Но никак не мог найти тему для рассказа. Недавно решил изучить тему «оптимистическая» и «пессимистическая» блокировки, но на мое удивление ни в ру сегменте, ни в англ сегменте — хороших статей, которые дают полное представление об двух типах блокировок с применением Hibernate, нет, поэтому я решил агрегировать всю информацию в одной короткой статье. Так как это моя первая статья, буду рад критике:) Итак, погнали.
P. S. Это статья не является полным гайдом для этих двух типов блокировок, она в первую очередь нацелена дать понятное описание двух решений одной проблемы, а если нужны примеры использования в Hibernate, то добро пожаловать в Google:)
Читать: https://habr.com/ru/articles/858714/?utm_campaign=858714
@a_cup_of_java | Другие наши каналы
8 291
Kafka Streams ч3: Stateless processing
В предыдущих статьях [ноль, один] мы рассмотрели основные концепции Kafka Streams и сравнили их со стандартными подходами обработки потоковых данных. В этой части мы сосредоточимся на stateless processing (обработке без сохранения состояния) и поймем как применять различные операции Kafka Streams для решения практических задач. Мы создадим приложение для обработки данных медицинской клиники.
Требования к ETL пайплайну:
Приложение должно обрабатывать поток JSON-сообщений из входного топика Kafka (patient-records), содержащих информацию о пациентах медицинской клиники. Цель состоит в том, чтобы применять различные stateless операции для трансформации данных и отправлять результаты в выходной топик (clinic-notifications-topic). Это позволит продемонстрировать, как использовать основные возможности Kafka Streams для обработки данных без сохранения состояния.
Читать: https://habr.com/ru/articles/858668/?utm_campaign=858668
@a_cup_of_java | Другие наши каналы
8 291
Книга: «Простое объектно-ориентированное проектирование: чистый и гибкий код»
Привет, Хаброжители!
Объектно-ориентированное проектирование (ООП) — не просто чисто инженерная задача; оно перерастает в искусство. Никакая заданная последовательность шагов не приведет к оптимальному проекту. Объектно-ориентированное проектирование требует творческого подхода.
В книге «Простое объектно-ориентированное проектирование: чистый и гибкий код» Маурисио Аниче рассматривает ООП с двух точек зрения: как предотвратить резкое увеличение сложности системы и как получить «достаточно хорошую» архитектуру.
Читать: https://habr.com/ru/companies/piter/articles/858298/?utm_campaign=858298
@a_cup_of_java | Другие наши каналы
8 291
Протоколы внутренней маршрутизации
Материал продолжает серию статей, посвящённую семинарам внутреннего обучения, которые проводятся в IT-компании NAUKA. Надеемся, что сведения, представленные в ней, будут полезными для школьников старших классов, студентов младших курсов ВУЗов, сотрудников IT-компаний, не связанных в своей работе с IT-инфраструктурой.
В данном разделе будут кратко рассмотрены протоколы внутренней динамической маршрутизации (RIP, EIGPR, OSPF) наиболее часто используемые в настоящее время для сетей IPv4.
Читать: https://habr.com/ru/companies/nauka/articles/858606/?utm_campaign=858606
@a_cup_of_java | Другие наши каналы
8 291
YYYY? yyyy!
Знаете ли вы, в чём разница между 'Y' и 'y' символами в паттерне даты в Java? В этой статье мы рассмотрим, как неправильное форматирование даты может привести к ошибке, а также расскажем вам про нашу новую диагностику V6122 для языка Java, которая убережёт вас от внезапных путешествий во времени.
Читать: https://habr.com/ru/companies/pvs-studio/articles/858512/?utm_campaign=858512
@a_cup_of_java | Другие наши каналы
8 291
Сборка мусора в Java. Часть 2. Прогресс со времени выхода JDK 8
Команда Spring АйО перевела и адаптировала доклад "Garbage Collection in Java: The progress since JDK 8" Стефана Йоханссона(Stefan Johansson) с последнего Devoxx Belgium.
Доклад получилось поделить на две статьи:
* В первой мы рассказали про основы работы сборки мусора в Java и различных сборщиках мусора
* Вторая часть посвящена сравнению производительности сборщиков и их прогрессу с момента выхода JDK 8
Читать: https://habr.com/ru/companies/spring_aio/articles/858166/?utm_campaign=858166
@a_cup_of_java | Другие наши каналы
8 291
Транзакции в Spring: сила управления данными
Привет, Хабр! Сегодня разберемся с транзакциями в Spring так, чтобы всё стало ясно и понятно: зачем они нужны, как работают и как их настроить так, чтобы данные были под контролем.
Начнем с самого начала. Транзакция — это единица работы, которая должна быть выполнена полностью или не выполнена вовсе. Представьте банковскую операцию: перевод денег с одного счета на другой. Если деньги списаны с первого счета, но не зачислены на второй, у нас проблемы. Именно для таких ситуаций нужны транзакции.
В Spring управление транзакциями стало простым и интуитивно понятным благодаря хорошим инструментам и абстракциям. Рассмотрим, как это всё работает.
Читать: https://habr.com/ru/companies/otus/articles/856842/?utm_campaign=856842
@a_cup_of_java | Другие наши каналы
8 291
Как я пытался приручить кофемашину
Добрый день. Делюсь своей старой исследовательской мини-статьей. Не ругайтесь, мне просто было скучновато.
Я, как и любой программист, люблю изучать что-то новое. Все мы знаем о киношных хакерах, которые могут парой нажатий кнопок на любом холодильнике, взломать инсту маминой подруги.
Очередное желание изучить что-то новое привело меня к попытке написать программу (на rust), которая должна без инъекции взаимодействовать с запущенным java приложением. Я хотел читать и изменять память нужных мне java объектов без загрузки java-agent модулей, без использования jni, без загрузки новых классов в приложение и т.п. У меня есть PID процесса и знание о том, что это java приложение.
Читать: https://habr.com/ru/articles/857874/?utm_campaign=857874
@a_cup_of_java | Другие наши каналы
8 291
Java 24 to Reduce Object Header Size and Save Memory
JEP 450 (Compact Object Headers) has been targeted for delivery in JDK 24. This currently experimental feature optimizes heap utilization by shrinking the size of the mandatory object header in HotSpot. This should reduce overall heap size, improve density of deployments, and increase data locality.
By Ben Evans
Read: https://www.infoq.com/news/2024/11/compact-headers-java24/
@a_cup_of_java | Другие наши каналы
8 291
Создание плагина для IntelliJ IDE с подключением GigaChat для проверки качества кода
При разработке рабочего проекта, локальный запуск которого дело достаточно ресурсоемкое, у меня возникла идея попробовать облегчить себе работу путем создания плагина, который налету при разработке может анализировать блок кода, тем самым выдавая рекомендации по оптимизации или находя ошибки.
Читать: https://habr.com/ru/articles/857796/?utm_campaign=857796
@a_cup_of_java | Другие наши каналы
8 291
Java News Roundup: Spring Cloud, Project Loom, Open Liberty, Groovy, Jakarta EE 11 Update
This week's Java roundup for November 4th, 2024 features news highlighting: the first candidate release of Spring Cloud 2024; an update on Project Loom; the release of Open Liberty 24.0.0.11; point and milestone releases for Apache Groovy; and an update on Jakarta EE 11.
By Michael Redlich
Read: https://www.infoq.com/news/2024/11/java-news-roundup-nov04-2024/
@a_cup_of_java | Другие наши каналы
8 291
Поддержка RestClient для OAuth2 в Spring Security 6.4
Команда Spring АйО перевела статью, в которой Steve Reisenberg рассказал о множестве полезных улучшений для работы с OAuth2 в Security 6.4.
Прочитав статью вы узнаете, как отправлять запросы к защищенным ресурсам без дополнительных зависимостей, а также переопределять параметры в запросах токенов доступа для реализации сложных сценариев.
Читать: https://habr.com/ru/companies/spring_aio/articles/857664/?utm_campaign=857664
@a_cup_of_java | Другие наши каналы
8 291
Spring и Hibernate простыми словами: обзор для новичков
Spring и Hibernate — два популярных инструмента для Java, которые используются в разработке приложений. В этой статье мы исследуем их основные функции и особенности, как они работают вместе и почему так высоко ценятся в IT-индустрии. А сложные концепции разбираем на понятные кусочки, которые мягко введут в курс дела любого новичка: программиста, аналитика или менеджера по продукту.
Читать: https://habr.com/ru/companies/productstar/articles/774508/?utm_campaign=774508
8 291
Как попасть в ИТ-команду, где не боятся ошибаться?
23 и 24 ноября в Т-Банке пройдет Java Weekend Offer для разработчиков уровня middle и senior. Можете пройти собеседование за выходные и, если всем все понравится, получить оффер.
В компании используют новые версии языка и сохраняют баланс между самописными и опенсорсными инструментами. Здесь выстроенный процесс разработки и свобода для экспериментов. Можно пробовать новые технологии, расти в сильной команде и обмениваться опытом на конференциях и митапах.
Узнайте больше и успейте оставить заявку до 20 ноября.
Это #партнёрский пост
8 291
Repost from Типичный программист
200 проектов для практики программистам любого уровня
Пет-проекты обычно делают для себя в свободное время. Но основная проблема — это найти такие пет-проекты, чтобы научиться чему-нибудь полезному, не забить на них в процессе и сделать их так, чтобы в портфолио не стыдно было приложить.
Тут автор проделал огромную работу и сделал аж 200 идей для ваших проектов. И что круто — этот список подходит не только новичкам и не ограничивается какими-то определёнными технологиями. Все проекты удобно разделены по уровню сложности и стеку: блокчейн, веб, редактор изображений — да буквально что угодно! Остаётся только выбрать и начать.
#хобби #карьера
8 291
Пятый юбилейный митап IT Talk by Sber в Новосибирске!
Вас ждет возвращение к истокам, ведь тема митапа — Java и всё, что с ним связано. Вам определенно будет что и кого послушать и с кем пообщаться!
Когда и где: 14 ноября, Новосибирск, лофт-парк «Подземка».
Темы и спикеры:
— Разделяй и властвуй: Практический подход к горизонтальному масштабированию реляционных баз данных в Java (Дмитрий Дрожжин, Lead Java-разработчик)
— Различия и особенности локального запуска и запуска в контейнере (Вячеслав Гуров, Senior Java-разработчик)
— Использование коллекций java.util.concurrent для разных моделей Producer-Consumer с различной интенсивностью операций добавления, удаления, поиска и количеством участников (Роман Бондарь, Lead Java-разработчик)
Как попасть на мероприятие? Регистрируйтесь и приходите 14 ноября!
Это #партнёрский пост
8 291
Как попасть в ИТ-команду, где не боятся ошибаться?
23 и 24 ноября в Т-Банке пройдет Java Weekend Offer для разработчиков уровня middle и senior. Можете пройти собеседование за выходные и, если всем все понравится, получить оффер.
В компании используют новые версии языка и сохраняют баланс между самописными и опенсорсными инструментами. Здесь выстроенный процесс разработки и свобода для экспериментов. Можно пробовать новые технологии, расти в сильной команде и обмениваться опытом на конференциях и митапах.
Узнайте больше и успейте оставить заявку до 20 ноября.
Это #партнёрский пост
8 291
Yandex DEVent PRO: митап для опытных бэкенд-разработчиков
Вас ждут три хардовых доклада:
— Роман Косарев, руководитель разработки Яндекс Недвижимости. Расскажет, как и почему ребята пришли к федеративному GraphQl в архитектуре синхронного API сервиса
— Никита Макаров, руководитель Универсального поиска. Подробно покажет, как внедрение YandexGPT помогло пользователям быстрее принимать решения при покупке товара
— Дмитрий Плещеев, руководитель группы разработки сервисов картографии. Расскажет, как команда Автономного транспорта создаёт высокоточные карты и зачем они нужны
Зарегистрироваться на митап можно тут.
Мероприятие пройдёт в офлайн-формате. Количество мест ограничено. Пожалуйста, после регистрации дождитесь подтверждения вашего участия — оно придёт на электронную почту.
Реклама. ООО "Яндекс", ИНН 7736207543.
8 291
Пример использования Spring Data и Redis для временного хранения персональных данных
Некоторые компании, работающие с персональными данными пользователей, сталкиваются с невозможностью хранить их в течение долгого периода времени из-за правовых ограничений. Такое часто можно встретить в финтехах. Позволяется сохранить данные на очень короткое время, которые также должны быть удалены сразу после использования в целях сервиса. Существует несколько вариантов решения этой задачи. В данном посте я показываю упрощенный пример микросервиса, работающего с чувствительной информацией, используя Spring и Redis.
Читать: https://habr.com/ru/articles/857518/?utm_campaign=857518
@a_cup_of_java | Другие наши каналы
