Найти в Дзене
💡 Java-совет: WeakHashMap для кэша без утечек памяти
Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива, ключи и значения не будут удалены GC, даже если они больше нигде не используются. WeakHashMap решает эту проблему: • Ключи хранятся через weak reference • Если на ключ нет сильных ссылок в коде - GC может его удалить • Запись автоматически исчезает из мапы • Отлично подходит для кэшей, метаданных, listener-ов Пример идеи: • Положил объект в WeakHashMap • Убрал на него все обычные...
1 день назад
🚀 Java-совет, который спасает от невидимых багов
🚀 Java-совет, который спасает от невидимых багов Начиная с Java 11, вместо привычного trim() лучше использовать strip(). Выглядит как мелочь, но на практике это разница между "почему у меня не совпадают строки?!" и нормальной жизнью. В чем проблема `trim()` trim() работает по старым правилам и убирает только базовые ASCII-пробелы. Юникодные пробельные символы (а их куча - из копипасты, веба, PDF и т.д.) могут остаться в строке...
1 день назад
Архитектурный Клуб от Яндекс 360
Инженеры Яндекс 360 накопили большой опыт в проектировании систем, которыми пользуются более 100 миллионов человек каждый месяц, и теперь готовы делиться этим опытом и объединять вокруг него единомышленников. 26 марта в 17:00 Вместе с Дарьей Андреевой, руководителем бэкенд-разработки...
1 день назад
🖥 Resilience4j - библиотека для Java, которая помогает сделать микросервисы устойчивыми к сбоям и перегрузкам
В распределённых системах ошибки — это норма: * внешние сервисы падают * запросы зависают * API начинают тормозить * нагрузка резко растёт Если не контролировать такие ситуации, один нестабильный сервис может «уронить» всю систему. Resilience4j решает эту проблему с помощью набора паттернов отказоустойчивости. Основные компоненты: Circuit Breaker Отслеживает частоту ошибок и временно блокирует обращения к нестабильному сервису, чтобы дать ему восстановиться. Rate Limiter Ограничивает количество запросов и защищает систему от перегрузки...
2 дня назад
⚡️ Spring Boot умеет валидировать входные DTO буквально парой аннотаций - без ручных if и простыней кода
Вместо самописных проверок используем Bean Validation прямо в модели запроса. Пример DTO: - @Email — проверяет формат почты - @NotBlank — поле обязательно - @Size(min, max) — ограничения длины - @Pattern — проверка по regex Spring автоматически: - валидирует входящий JSON - при ошибке возвращает 400 Bad Request - формирует понятный список ошибок в ответе То есть API сразу становится “самозащищающимся” от кривых данных...
2 дня назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала