ru
Feedback
Чашечка Java

Чашечка Java

Открыть в Telegram

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

Больше
8 572
Подписчики
+224 часа
-27 дней
-2130 день
Архив постов
Статический анализ кода для Spring: выполните анализ, исправьте критические ошибки и отправляйтесь на пляж Почему статический анализ кода для Spring так важен? 72% наших пользователей JVM используют Spring в своих приложениях, особенно в таких отраслях, как производство и финансы. Почему? Spring делает программирование на Java и Kotlin более быстрым, простым и безопасным для всех, но при этом возникают уникальные проблемы. Читать: https://habr.com/ru/articles/867696/?utm_campaign=867696 @a_cup_of_java | Другие наши каналы

Оптимистичная блокировка в Hibernate если у вас DDD (и не только) Привет, хабр! Сегодня я хотел бы рассказать о том, как можно реализовать оптимистичную блокировку в Hibernate если вы используете DDD, а точнее агрегаты. Если кто-то не в курсе что такое оптимистичная блокировка, то советую сначала почитать это. Проблема: Думаю, многим известно что, в целом, реализация оптимистичной блокировки в Hibernate проще некуда - всё что нужно сделать это добавить поле version с аннотацией @Version в вашу энтити. Bот так: Читать: https://habr.com/ru/articles/858040/?utm_campaign=858040 @a_cup_of_java | Другие наши каналы

Статья. Как я добился гибкости в приложении и причем тут ссылки на методы? Всем привет! Меня зовут Макс, и уже 14 лет как я вошел в ИТ и пока не планирую отсюда выходить. Последние 7 лет я не только сам пишу код, но и занимаюсь "выпасом котов". К написанию статьи меня побудила моя любовь к ссылкам на методы и желание поделится "кастомными" способами их использовать вне базовых классов java. Если вы задумывались об усилении гибкости приложения и преимуществах AOP, но вас отпугивают его недостатки, в статье предлагаю рассмотреть вариант получения тех же (ну или почти тех же преимуществ), но без раздражающих (по крайней мере меня) недостатков. Для использования идей из статьи не требуется каких-то особых магических знаний, достаточно знать, что такое функциональный интерфейс. Читать: https://habr.com/ru/companies/rostelecom/articles/896906/?utm_campaign=896906 @a_cup_of_java | Другие наши каналы

Code-Level Observability: Глубокая видимость на уровне кода против традиционных APM и преимущества BitDive Современные приложения и распределённые системы стали невероятно сложными, а традиционные инструменты мониторинга зачастую не справляются с выявлением скрытых проблем. Code-Level Observability предлагает новый подход, позволяющий получить детальное представление о работе приложения непосредственно на уровне исходного кода. В этой статье мы рассмотрим, почему глубокая видимость кода становится необходимостью, какие проблемы имеют популярные APM-системы, и как система BitDive превосходит традиционные решения. Читать: https://habr.com/ru/articles/896944/?utm_campaign=896944 @a_cup_of_java | Другие наши каналы

От Kotlin до кассовых чеков: как выглядит Java-разработка в SM Lab Когда видишь компанию со стороны, одни вещи понимаешь, а другие остаются секретом. О том, что SM Lab отвечает за IT-решения в группе компаний «Спортмастер», можно догадаться уже по названию и логотипу. Но, например, сколько разработчиков заняты этими решениями? Какие именно у них проекты? Это куда менее очевидно. Мы проводим конференции по разным IT-направлениям, на них неоднократно выступали спикеры из SM Lab, и некоторые вещи можно понять по их докладам. Например, на Mobius рассказывали про «Генерацию этикеток для термопринтеров на основе языка разметки ZPL», а на Heisenbug помогали другим с «Первыми шагами в нагрузке». А на этой неделе SM Lab примет участие в нашей Java-конференции JPoint, и я решил, что сейчас самое время задать вопросы о Java-разработке сотрудникам самой компании. Публикую результат, в котором соединены вместе ответы нескольких разных людей. Читать: https://habr.com/ru/companies/jugru/articles/896748/?utm_campaign=896748 @a_cup_of_java | Другие наши каналы

Разработчику на заметку Когда приходит идея проекта, его хочется сразу запустить, а не ковыряться неделю в конфигах. Вот для
Разработчику на заметку Когда приходит идея проекта, его хочется сразу запустить, а не ковыряться неделю в конфигах. Вот для таких случаев и есть серверы Aéza: — сервер можно развернуть в пару кликов;   — поддерживается любая ОС (от AlmaLinux до Windows Server 2022);  — есть дата-центры в Москве и Санкт-Петербурге. Хочешь — бери 1 ядро и 2 ГБ RAM, хочешь — развлекайся на 16 ядрах и 32 гигах памяти. Есть и выделенные серверы, если душа требует полной изоляции и свободы. А главное — понятные тарифы, простая панель управления и бесплатная защита от DDoS уже в комплекте. Так что если ты: — запускаешь сервис; — хочешь тестить код на «живом» сервере; — устал от непредсказуемых облаков;  то заглядывай в Aéza, выбирай подходящий тариф и получай 15% кэшбек на старте.  Это #партнёрский пост

Лучшие практики создания отказоустойчивых систем Разработка отказоустойчивых систем представляет собой важнейшую компетенцию для инженеров, занятых созданием распределённых и масштабируемых приложений. Под отказоустойчивостью понимается способность системы сохранять работоспособность в условиях сбоев отдельных компонентов или недоступности внешних сервисов. В данной статье рассматриваются практики обеспечения устойчивости на уровне программного кода, в частности в контексте серверных приложений, реализованных на языках Python и Java. Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач. Читать: https://habr.com/ru/articles/896638/?utm_campaign=896638 @a_cup_of_java | Другие наши каналы

3 вопроса на собеседование о многопоточности в Java Привет, Хабр! Сегодня рассмотрим несколько вопросов на собеседовании, которые могут встретиться: чем synchronized отличается от ReentrantLock, что такое happens-before и как оно влияет на volatile и final и почему ConcurrentHashMap.computeIfAbsent() не всегда безопасен? Читать: https://habr.com/ru/companies/otus/articles/896178/?utm_campaign=896178 @a_cup_of_java | Другие наши каналы

Хранение 1 ТБ в виртуальной памяти на компьютере с 64 ГБ памяти с использованием Chronicle Queue Java разработчики часто сталкиваются с проблемой обработки очень больших наборов данных в рамках ограничений виртуальной машины Java (JVM). Когда размер кучи значительно увеличивается — часто более чем на 32 ГБ, — время паузы при сборке мусора (GC) может увеличиваться, что приводит к снижению производительности. В этой статье рассматривается, как Chronicle Queue обеспечивает хранение и эффективный доступ к набору данных размером 1 ТБ на компьютере с 64 ГБ оперативной памяти. Читать: https://habr.com/ru/articles/866154/?utm_campaign=866154 @a_cup_of_java | Другие наши каналы

Ускорение Spring REST API на 200% Spring Framework уже многие годы является базой, на которой разрабатывается подавляющее большинство серверных приложений на Java. Он предоставляет абстракции над множеством различных технологий, в том числе и абстракции для разработки REST API. Все эти абстракции имеют свою цену в плане производительности, и иногда эта цена является очень большой, если речь идёт о высоконагруженном приложении. В этой небольшой статье я покажу, как можно избавиться от ненужных накладных расходов и значительно увеличить производительность вашего API. Читать: https://habr.com/ru/companies/maxilect/articles/896240/?utm_campaign=896240 @a_cup_of_java | Другие наши каналы

Библиотека для кэширования Caffeine: анализ кода То и дело, прожигая время за чтением reddit, я натыкаюсь на очередной пост, в котором упоминается метод S3 FIFO и упоминается, что он лучше LRU (вытеснение реже всего используемых значений) — потому, что даёт более низкий процент промахов кэша. Видные компании, в частности, RedPandas, Rising Wave и Cloudflare уже внедрили S3 FIFO у себя на различных мощностях, что только подогрело мой интерес к нему. Кэши — чертовски интересная тема, а по работе мне приходится сильно полагаться на работу с кэшами при обслуживании нескольких сервисов. Так что я был уверен, что рано или поздно мне потребуется протестировать S3 FIFO или, как минимум, удостовериться, что я понимаю ключевые идеи, заложенные в этой технологии. Правда, казалось, что рановато с головой погружаться в изучение нового подхода к кэшированию, пока ещё досконально не разобрался в аналогичной системе, с которой приходится иметь дело на работе сейчас. У нас в команде для работы с кэшированием используется библиотека Caffeine, и, положа руку на сердце, я не ориентировался в её внутреннем устройстве, не пытался проверить, можно ли в ней что-нибудь подкрутить, и есть ли в ней параметры, поддающиеся тонкой настройке. В этой статье я попробую законспектировать мои изыскания и рассказать, как на собственном опыте разбирался во внутреннем устройстве библиотеки Caffeine. Все желающие приглашаются в путешествие с разбором сложностей одной из наиболее востребованных систем кэширования, используемых в мире. Будь вы бывалый инженер или просто новичок, интересующийся продвинутыми механизмами кэширования, это исследование прольёт вам свет на многие вопросы и подведёт к важным практическим выводом. Поехали! Читать: https://habr.com/ru/articles/896266/?utm_campaign=896266 @a_cup_of_java | Другие наши каналы

Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной Вадим Ваганов, руководитель разработки и Head
Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной Вадим Ваганов, руководитель разработки и Head of Profession Backend в Газпромбанке, рассказывает, почему важно визуализировать метрики и свою работу. Читать: «Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной» @a_cup_of_java | Другие наши каналы

Что такое lsFusion: взгляд со стороны Эта статья – небольшой обзор продуктов компании lsFusion и того предалагает пользователям компания lsFusion. Взялся я за него после того, как в статьях «Почему я не люблю 1С» и «Стоит ли идти в 1С программисты в 2025 году» упомянул эту систему как одну из возможных альтернатив 1С. На тот момент я только читал о том, что есть такая система как lsFusion на Хабре, из любопытства заходил на их сайт и просматривал в поиске дополнительную информацию. Тогда я ее упомянул только как «одну из систем» в перечне альтернатив, так как сами они явно позиционируют себя как учетная система. Далее уже в комментариях я увидел большой тред, где сравнивали 1С и lsFusion. Мне стал интересен автор комментариев, оказалось, что это работник lsFusion. Я с ним связался, чтобы самому лучше понять, что же это за программный продукт. Получил ответы на многие собственные вопросы, изучил ближе саму систему. И теперь хочу поделиться тем, что узнал, чтобы помочь людям, которые находятся в поиске альтернативы 1С. Читать: https://habr.com/ru/companies/trinion/articles/895688/?utm_campaign=895688 @a_cup_of_java | Другие наши каналы

Обзор новостей Java: Jakarta EE 11, Spring AI и обновления В мире Java продолжаются значительные обновления: Jakarta EE 11 по
Обзор новостей Java: Jakarta EE 11, Spring AI и обновления В мире Java продолжаются значительные обновления: Jakarta EE 11 получил одобрение, первая бета-версия WildFly 36 принесла улучшения производительности, а Spring AI обновил свои стартовые артефакты. Следите за новинками, чтобы не упустить важное для разработчиков! Подробности: https://www.infoq.com/news/2025/03/java-news-roundup-mar24-2025/ #en @a_cup_of_java | Другие наши каналы

Как исправить ошибку Unsupported major.minor version в Eclipse? Столкнулись с ошибкой UnsupportedClassVersionError в Eclipse?
Как исправить ошибку Unsupported major.minor version в Eclipse? Столкнулись с ошибкой UnsupportedClassVersionError в Eclipse? Часто она возникает, когда код компилируется на более высокой версии JDK, чем используется для выполнения. Решение — обновить конфигурацию запуска на нужную версию JDK. Узнайте все детали в статье на Java67. 🎥 Обучение Adobe Premiere Pro и подготовка к собеседованиям по Java Интересуетесь видеомонтажом или планируете собеседование по Java? В статье представлен обзор бесплатных курсов Adobe Premiere Pro и вопросов для подготовки к собеседованиям по Java: от SQL до Spring. Узнайте больше на сайте Javarevisited. Подробности: http://www.java67.com/2018/01/eclipse-unsupported-major-minor-version-53-53-51-error-Java.html #en @a_cup_of_java | Другие наши каналы

Что делать при ошибке "java.lang.OutOfMemoryError: unable to create new native thread" Эта ошибка в Java возникает из-за прев
Что делать при ошибке "java.lang.OutOfMemoryError: unable to create new native thread" Эта ошибка в Java возникает из-за превышения лимита на количество потоков в системе. Решение – увеличить лимит потоков с помощью команды ulimit в Linux или устранить утечку потоков в коде приложения. Учитесь избегать таких проблем при разработке Java-приложений. Разбираемся с потоками в Java: основные концепции Статья рассматривает ключевые понятия работы с потоками в Java, такие как интерфейс Runnable, управляющие блоки synchronized, методы wait и sleep, а также особенности демонов и очередей. Узнайте больше о технических аспектах и применении потоков в разработке. Подробности: http://www.java67.com/2016/10/javalangoutofmemoryerror-unable-to-create-new-native-thread-in-java-solution.html #en @a_cup_of_java | Другие наши каналы

Тема дня: 10 ключевых аннотаций Spring MVC и REST Статья из Java67 рассказывает о самых полезных аннотациях Spring MVC и REST, таких как @Controller, @RequestMapping и @RestController. Эти аннотации облегчают создание Java веб-приложений и RESTful сервисов, помогая разработчикам эффективно управлять запросами и ответами. Аннотации Spring MVC: все, что нужно знать Статья посвящена ключевым аннотациям в Spring MVC и REST, важным для разработчиков Java. Особое внимание уделяется @EnableAutoConfiguration и @ResponseStatus. Более подробно с аннотациями можно ознакомиться в книгах "Spring Boot in Action" и "Spring in Action". Полный гид по собеседованиям в мире Java Javarevisited предлагает обширный список вопросов для подготовки к собеседованиям: от Spring Boot и Microservices до SQL и Java Collections. Ищете курсы по Spring Framework? Это тоже здесь. Подпишитесь и не пропустите новые обновления и скидки! Подробности: http://www.java67.com/2019/04/top-10-spring-mvc-and-rest-annotations-examples-java.html #en @a_cup_of_java | Другие наши каналы

photo content

Как перевести проект на Laravel: пошаговый план перехода Как перевести проект на Laravel. Показываем основные преимущества ис
Как перевести проект на Laravel: пошаговый план перехода Как перевести проект на Laravel. Показываем основные преимущества использования Ларавел. Рассматриваем пошаговую инструкцию нюансы переноса ✔ Tproger Читать: «Как перевести проект на Laravel: пошаговый план перехода» @a_cup_of_java | Другие наши каналы

Hibernate proxy and N+1 Это вторая статья, связанная с пониманием, поиском и устранением проблемы N+1. Первая статья была про стратегии извлечения данных. Эта статья будет про Hibernate proxy. Понимание концепций стратегии извлечения данных и Hibernate прокси, это ключи к пониманию причин, приводящих к N+1. Подробней про N+1, будет рассказано в следующих статьях. Читать: https://habr.com/ru/articles/895118/?utm_campaign=895118 @a_cup_of_java | Другие наши каналы