Профессиональные привычки программиста

Оглавление Введение Опытный разработчик отличается не только знанием языков или фреймворков, но и набором “правильных” рабочих привычек. В этой статье мы попробуем обсудить довольно простые практики, которые помогают опытным разработчикам добиваться высокого качества кода и эффективности. Приведем примеры кода и некоторые иллюстрации, показывающие идеи архитектуры и взаимодействия. Доводить задачу до конца Профессионал не бросает работу … —Читать далее—

Loading

Weekly Digest #7

proselyte_sde_weekly_digest

Друзья, предлагаю ознакомиться с седьмым еженедельным дайджестом из мира Java разработки. Публикации: Новые релизы:

Loading

Что такое наблюдаемость и зачем она нужна в микросервисах?

Оглавление Введение В условиях роста распределенных систем, микросервисной архитектуры и облачных платформ современный разработчик сталкивается с постоянной необходимостью понимать, как работает его приложение не только в рамках одного сервиса, но и во всей экосистеме. Наблюдаемость (Observability) – это ключ к прозрачности работы системы в продакшене. Это не просто графики и алерты, а способность ответить на … —Читать далее—

Loading

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

spring-web-vs-webflux

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

Loading

Защитные паттерны в микросервисной архитектуре: RateLimiter, Bulkhead, Timeout, Fallback и CircuitBreaker

protect-patterns

Оглавление Введение: почему нужны защитные паттерны В сложных распределенных системах микросервисной архитектуры отказ или перегрузка одного компонента может привести к каскадному отказу всей системы. Например, если сервис A зависит от медленного сервиса B, а B начинает отвечать с сильной задержкой или вовсе не отвечает, то все запросы к A будут зависать и занимать потоки, пока … —Читать далее—

Loading