Please open Telegram to view this post
VIEW IN TELEGRAM
😁24👍2🔥1😢1
Случайно удалили строки, или вдруг не можете вспомнить, что только что меняли? Здесь на помощь приходит Local History.
🔹 Что делает
— Хранит локальные изменения файлов даже без коммитов
— Сохраняет историю редактирования на уровне IDE
— Позволяет вернуться к любой версии файла за определенный период времени
🔹 Зачем это нужно
— Спасает, если случайно удалил важные строки или сделал нежелательное изменение
— Не требует настроек или использования системы контроля версий
— Мгновенно восстанавливает состояние файла без лишних усилий
🔹 Как использовать
— Щелкните правой кнопкой на файле, выберите Local History -> Show History
— Выберите нужную версию и восстановите изменения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥3
С 2025 года Redis вернулся к open-source, выпустив Redis 8 под лицензией AGPLv3. После введения SSPL в 2024 году и резкой критики со стороны сообщества, Redis вернулся к истокам, но стоит ли этому радоваться?
Сторонники новой лицензии считают, что это правильный шаг, который восстановит доверие сообщества и вернёт Redis в ряды самых популярных инструментов для работы с БД в реальном времени. Однако критики утверждают, что этот ход больше связан с маркетингом и попыткой вернуть пользователей, чем с настоящими улучшениями.
— AGPLv3 обещает более открытое использование Redis в корпоративных и стартап-проектах.
— Но SSPL оставляет много вопросов о том, как Redis будет восприниматься в экосистеме open-source в будущем.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🤔3👍2❤🔥1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23🔥3👍2
🔍 Загадка для разработчиков
Что за термин загадан на картинке?
💬 Пишите в комменты ответ под спойлером.
🐸 Библиотека джависта #междусобойчик
Что за термин загадан на картинке?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Олды здесь? 👋 Помните ту самую боль ручного управления потоками, когда каждый new Thread().start() был отдельным приключением, а wait()/notify() превращали код в минное поле, где один неверный notifyAll() мог обрушить всю логику? Помните вечную молитву богам планировщика, чтобы ваш synchronized блок не привёл к дедлоку? 💀
Пост Антона Черноусова — это тёплый флешбэк в 2004 год, когда JSR 166 и пакет java.util.concurrent стали для нас настоящим глотком свежего воздуха . Это был не просто набор утилит, а смена парадигмы. Мы получили инструменты, которые решали проблемы на концептуально новом уровне.
Вместо ручного менеджмента потоков пришёл ExecutorService, который позволил думать о задачах, а не о жизненном цикле Thread. Вместо медленного Hashtable или Collections.synchronizedMap мы получили молниеносный ConcurrentHashMap. А вместо хрупких конструкций на wait()/notify() — мощные и понятные синхронизаторы вроде CountDownLatch и CyclicBarrier.
Именно этому и посвящена книга «Java Concurrency на практике». Она стала тем самым мануалом, который не просто описывал API, а учил мыслить в новой парадигме. Для опытных это отличный повод поностальгировать и оценить пройденный путь, а для молодых — понять, почему эти «классические» инструменты до сих пор являются основой большинства многопоточных приложений на Java.
Пост Антона Черноусова — это тёплый флешбэк в 2004 год, когда JSR 166 и пакет java.util.concurrent стали для нас настоящим глотком свежего воздуха . Это был не просто набор утилит, а смена парадигмы. Мы получили инструменты, которые решали проблемы на концептуально новом уровне.
Вместо ручного менеджмента потоков пришёл ExecutorService, который позволил думать о задачах, а не о жизненном цикле Thread. Вместо медленного Hashtable или Collections.synchronizedMap мы получили молниеносный ConcurrentHashMap. А вместо хрупких конструкций на wait()/notify() — мощные и понятные синхронизаторы вроде CountDownLatch и CyclicBarrier.
Именно этому и посвящена книга «Java Concurrency на практике». Она стала тем самым мануалом, который не просто описывал API, а учил мыслить в новой парадигме. Для опытных это отличный повод поностальгировать и оценить пройденный путь, а для молодых — понять, почему эти «классические» инструменты до сих пор являются основой большинства многопоточных приложений на Java.
❤7
Хотите создать мощный инструмент мониторинга для ваших микросервисов? Используйте AI, чтобы автоматически генерировать код для сбора метрик, логирования и трассировки запросов в реальном времени. Это поможет эффективно отслеживать производительность и устранять узкие места в системе.
📝 Промпт:
Generate a monitoring system for microservices in a Spring Boot 3 application.
— Integrate Spring Actuator to expose application health metrics and endpoints.
— Use Micrometer for collecting metrics such as response time, request count, and error rates.
— Implement distributed tracing with OpenTelemetry and Zipkin for tracking requests across multiple services.
— Enable log aggregation with ELK Stack (Elasticsearch, Logstash, and Kibana) for centralized log management.
— Set up Prometheus and Grafana for visualizing real-time performance metrics on custom dashboards.
— Configure automatic health checks and alerting using Spring Boot Admin and Prometheus Alerts.
— Create custom metrics to track domain-specific application performance, such as user sign-ups or payment processing times.
— Добавьте
Integrate application performance profiling using JProfiler
для захвата и анализа подробных данных о производительности.— Добавьте
Set up integration with Datadog or New Relic
для получения дополнительных аналитических данных и обнаружения аномалий в приложении.— Добавьте
Implement circuit breaker patterns with Resilience4j
для повышения стабильности системы при высоком трафике или сбоях сервисов.— Добавьте
Enable traceability for all API calls with correlation IDs
для обеспечения сквозной трассировки запросов в распределенной системе.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1😁1🥱1
🔹 Demystifying Spring Boot With Spring Debugger
Обзор плагина Spring Debugger от JetBrains. Этот плагин позволяет удобнее дебажить Spring-приложения, а еще наглядно показывает, какие бины загружены в контекст, какие свойства какими значениями проинициализированы и какая транзакция активна на момент той или иной точки остановки.
🔹 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1
Перевод доклада Мацея Валковяка Performance oriented Spring Data JPA & Hibernate, сделанный командой Spring АйО. Это первая из трех частей, и она сконцентрирована на управлении коннектами к БД.
🔹 Premature Design Is Not Design
В статье автор рассказывает о том, как преждевременное переусложенение дизайна приложений может привести к проблемам. Приводятся два примера: использование RBAC и DRY.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1