Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Аннотации Spring для компонентов и бинов Spring представляет собой контейнер для управления зависимостями @Component — универсальная аннотация, предназначенная для регистрации компонента в контексте Spring @Service —…
Архитектурные паттерны для производительности и отказоустойчивости CQRS: разносит операции чтения и записи, позволяя отдельно оптимизировать каждую из них Шардирование: горизонтально распределяет данные, чтобы…
Какие способы кэширования данных вы использовали на практике? in-memory кэширование с помощью Redis и Memcached для ускорения выдачи данных локальное кэширование на стороне приложения с применением LRU и TTL, например…
Плюсы и минусы применения ORM (SQLAlchemy) ORM представляет собой уровень абстракции над SQL для работы с БД Преимущества: позволяет взаимодействовать с данными через объекты автоматически формирует SQL и тем самым…
Какой уровень покрытия кода тестами можно считать достаточным? Контекст: оценка качества покрытия при тестировании ПО Стремиться можно к 100%, однако это скорее идеальная цель, которую редко удаётся достичь На…
В CPython подсчёт ссылок служит основным механизмом управления памятью. Напрямую отключить его нельзя, если не модифицировать сам интерпретатор. Есть альтернативный вариант: gc.disable() отключает сборщик циклических…
В современных JVM управление GC обычно доступно лишь в ограниченном объёме и зависит от настроек В большинстве платформ, включая Java и .NET, полностью отключить поколенческий GC нельзя При этом разрешается изменить…
Контекст: паттерны проектирования и структуры данных Кортеж представляет собой immutable container для нескольких значений По принципу организации он близок к паттерну Composite (составной объект): несколько объектов…
Java использует иерархию классов Исключения составляют примитивы и исключения JVM; например, примитивные типы классами не являются Когда класс явно не указывает родительский класс, он неявно наследует Object…
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Почему в Go нельзя создавать новый http.Client для каждого запроса? http.Client — структура, предназначенная для отправки HTTP-запросов в Go через встроенный Transport управляет TCP-подключениями Transport повторно…