Service Integration Contract Test: контрактное тестирование интеграции сервисов

Оглавление Введение Современные приложения все чаще строятся на основе микросервисной архитектуры, где десятки независимых сервисов взаимодействуют друг с другом посредством REST API или асинхронного обмена сообщениями, например, через Apache Kafka. Несмотря на очевидные преимущества такого подхода, такие как гибкость, масштабируемость и автономность команд разработки, возникают и серьезные вызовы, особенно связанные с интеграционным тестированием. Классические интеграционные … —Читать далее—

Loading

Spring Data JDBC vs Spring Data JPA: когда и зачем выбирать JDBC

Оглавление Введение При проектировании доступа к данным в приложениях на Spring Java разработчики часто используют Spring Data JPA, опирающуюся на ORM, для удобной работы с базой данных. Однако существует более “легкая” альтернатива – Spring Data JDBC, которая предлагает прямой доступ к данным без полноценного ORM-слоя. В этой статье мы подробно рассмотрим технические отличия Spring Data … —Читать далее—

Loading

Улучшаем обработку ошибок и логирование в REST API

Оглавление Введение Каждый разработчик хотя бы раз сталкивался с раздражающей ситуацией, когда API отвечает коротко и непонятно: «400 Bad Request». В таких случаях остаётся лишь гадать, что именно пошло не так: неправильный формат данных, пропущенные поля, неверный тип, или что-то ещё? Ситуация становится особенно неприятной, когда вы одновременно выступаете и разработчиком API, и его клиентом. … —Читать далее—

Loading

Spring Data JPA: основы и не только

Оглавление Консультируя компании (пытаясь оптимизировать существующие или спроектировать новые системы) мне часто приходится сталкиваться с тем, что многие разработчики не знают или не применяют крайне простые, но очень важные возможности различных фреймворков. Введение В частности, крайне популярный инструмент Spring Data JPA зачастую используется так, словно за последние годы не было никаких улучшений. Берутся самые базовые … —Читать далее—

Loading

Spring WebFlux vs Spring MVC с виртуальными потоками: выбор подхода

spring-web-vs-webflux

Оглавление Введение: проблема конкурентности Современные микросервисные системы обслуживают тысячи одновременных запросов, чаще всего – I/O-интенсивных (вызовы к БД, API, файловым системам и т.п.). Классическая модель «один поток на запрос» больше не масштабируется: тысячи ОС-потоков перегружают CPU и память. Поэтому появились два подхода: Обе технологии решают задачу конкурентности, но используют разные архитектурные принципы. В этой статье … —Читать далее—

Loading