Font size
WorksheetsВопросы по Domain-Driven Design
Total questions: 56
Worksheet time: 31mins
Какова главная задача Domain-Driven Design (DDD)?
Ускорение написания кода
Экономия места на диске
Использование NoSQL
Связывание архитектуры ПО с бизнес-правилами
Определите 'Bounded Context' в рамках DDD:
Переменная окружения
Ограничения сервера
Сетевой экран
Понятийная граница, где применяется конкретная модель
Что означает термин 'Ubiquitous Language'?
SQL
Английский язык
Язык Java
Общий язык, используемый как разработчиками, так и экспертами предметной области
Что такое 'Анемичная модель предметной области' (Anemic Domain Model)?
Модель без базы данных
Модель без тестов
Идеальная модель
Антипаттерн, где объекты содержат данные, но лишены поведения
Чем 'Сущность' (Entity) отличается от 'Объекта-значения' (Value Object)?
Сущность неизменяема
VO имеет ID
Ничем
Сущность имеет уникальный идентификатор и жизненный цикл; VO определяется только атрибутами
Что такое 'Корень Агрегата' (Aggregate Root)?
Первый созданный объект
Корневая директория сервера
Администратор базы данных
Главная сущность, через которую осуществляется доступ ко всем объектам внутри агрегата
При переходе от Монолита к Микросервисам, что является главной сложностью?
Выбор языка
Покупка серверов
Написание кода
Управление распределенными транзакциями и сетевыми задержками
Паттерн 'Strangler Fig' (Удушитель) используется для:
Взлома системы
Быстрой перезагрузки
Сжатия данных
Постепенной замены устаревшей системы новой по частям
Что такое 'Эволюционная архитектура'?
Отсутствие архитектуры
Архитектура, которая не меняется
Использовани
Что такое 'Эволюционная архитектура'?
Отсутствие архитектуры
Архитектура, которая не меняется
Использование только старых технологий
Архитектура, поддерживающая управляемые инкрементальные изменения с течением времени
В чем ключевое отличие gRPC от REST?
REST работает только оффлайн
REST быстрее
gRPC использует JSON
gRPC использует бинарный формат (Protobuf) и HTTP/2
Что означает 'Идемпотентность' в API?
Запрос шифруется
Запрос выполняется мгновенно
Запрос всегда возвращает ошибку
Повторный вызов метода с теми же параметрами не меняет состояние системы после первого раза
Какой HTTP метод НЕ является идемпотентным?
DELETE
GET
PUT
POST
Для чего используется OAuth 2.0?
Только для шифрования паролей
Для сжатия трафика
Для управления базой данных
Для делегирования доступа (Авторизация)
Что такое JWT?
Just Wrong Time
Java Web Tool
JSON Without Text
JSON Web Token — компактный формат для передачи защищенных данных
Что содержит Payload в JWT?
Исходный код
Пароль в открытом виде
Картинку профиля
Утверждения (Claims) о пользователе и данные
Что такое 'Circuit Breaker' (Предохранитель)?
Выключатель питания
Тип базы данных
Роутер
Паттерн для предотвращения каскадных сбоев путем временного отключения вызова неисправного сервиса
Что такое 'Rate Limiting'?
Ограничение скорости интернета
Ограничение размера базы данных
Удаление старых пользователей
Ограничение количества запросов от клиента за единицу времени
Какое 'Rate Limiting'?
Ограничение скорости интернета
Ограничение размера базы данных
Удаление старых пользователей
Ограничение количества запросов от клиента за единицу времени
Код ответа HTTP 429 означает:
Server Error
Unauthorized
Not Found
Too Many Requests (Слишком много запросов)
Какая стратегия версионирования API наиболее распространена?
Версия в куки
Случайное число
Без версий
URI Versioning (v1/resource)
Что означает CQRS?
Code Query Remote Server
Common Queue Request Service
Централизованный запрос
Command Query Responsibility Segregation (Разделение ответственности команд и запросов)
В чем преимущество CQRS?
Упрощает код для новичков
Требует одну базу данных
Использует меньше диска
Позволяет оптимизировать модели чтения и записи независимо друг от друга
Что такое 'Event Sourcing'?
Игнорирование событий
Удаление старых логов
Хранение только текущего состояния
Хранение состояния приложения как последовательности событий
Что такое 'Polyglot Persistence'?
Использование многих языков программирования
Отказ от баз данных
Использование одной БД везде
Использование наиболее подходящей технологии БД для каждой конкретной задачи
Для чего в основном используется Redis?
Для рендеринга HTML
Как долговременное хранилище архивов
Для компиляции кода
Как кэш в оперативной памяти (In-Memory)
Что утверждает CAP-теорема?
Consistency не важна
Availability не важна
Можно получить все 3 свойства
В распределенной системе можно гарантировать только 2 из 3: Consistency, Availability, Partition Tolerance
теорема?
Consistency не важна
Availability не важна
Можно получить все 3 свойства
В распределенной системе можно гарантировать только 2 из 3: Consistency, Availability, Partition Tolerance
Что такое 'Eventual Consistency'?
Данные никогда не согласуются
Данные всегда согласованы мгновенно
Ошибка базы данных
Данные станут согласованными через некоторое время, но не мгновенно
Стратегия кэширования 'Write-Through':
Не пишутся никуда
Пишутся только в БД
Пишутся только в кэш
Данные пишутся в кэш и в БД одновременно
Стратегия кэширования 'Cache-Aside' (Lazy Loading):
Кэш никогда не обновляется
Данные всегда есть в кэше
БД сама обновляет кэш
Приложение проверяет кэш, если нет — читает из БД и кладет в кэш
Что означает акроним C.A.L.M.S в DevOps?
Cloud, API, Logic, Microservice, Storage
Code, App, Linux, Mac, Server
Нет такого
Culture, Automation, Lean, Measurement, Sharing
В чем отличие IaaS от PaaS?
IaaS только для Windows
PaaS сложнее
Нет отличия
IaaS дает виртуальные машины (инфраструктуру), PaaS дает платформу для запуска кода
Пример модели SaaS:
Heroku
Linux
AWS EC2
Google Workspace (Gmail, Docs)
Что такое CNCF?
Central Network Control Facility
Нет
Cloud Network Code Force
Cloud Native Computing Foundation
Что означает 'Shift Left'?
Использование левого монитора
Сдвиг текста влево
Игнорирование тестов
Перенос тестирования и проверок безопасности на более ранние этапы разработки
В отличие от виртуальных машин, контейнеры:
Требуют больше памяти
Имеют собственное полноценное ядро
М
В отличие от виртуальных машин, контейнеры:
Требуют больше памяти
Имеют собственное полноценное ядро
Медленнее загружаются
Используют общее ядро ОС хоста и более легковесны
Инструкция Dockerfile 'FROM' делает:
Копирует файлы
Запускает команду
Открывает порт
Указывает базовый образ
Разница между 'COPY' и 'ADD' в Dockerfile?
COPY быстрее
Нет разницы
ADD устарел
ADD умеет распаковывать архивы и качать по URL, COPY просто копирует файлы
Что делает 'RUN' в Dockerfile?
Удаляет образ
Запускает приложение
Останавливает контейнер
Выполняет команду во время сборки образа (build time)
Что делает 'CMD' в Dockerfile?
Открывает порты
Загружает файлы
Компилирует код
Задает команду по умолчанию при запуске контейнера (runtime)
Что такое 'Layer Caching' в Docker?
Сжатие данных
Слои в Photoshop
Кэширование браузера
Использование кэшированных слоев для ускорения сборки, если инструкции не менялись
Что такое 'Multi-Stage Build'?
Это ошибка
Сборка в несколько этапов вручную
Сборка на нескольких серверах
Метод уменьшения размера образа путем использования промежуточных образов для сборки
Команда 'docker compose up' используется для:
Удаления контейнеров
Обновления Docker
Загрузки образа в реестр
Запуска многоконтейнерного приложения, описанного в YAML
Что такое 'Volume' в Docker?
Громкость звука
Размер файла
Сетевой интерфейс
Механизм для сохранения данных вне жизненного цикла контейнера
Файл .dockerignore нужен для:
Что такое 'Volume' в Docker?
Громкость звука
Размер файла
Сетевой интерфейс
Механизм для сохранения данных вне жизненного цикла контейнера
Файл .dockerignore нужен для:
Настройки сети
Списка паролей
Игнорирования ошибок
Исключения файлов (например, node_modules) из контекста сборки
Какой компонент является 'мозгом' кластера Kubernetes (хранит состояние)?
Ingress
Docker
Kubelet
etcd
Функция 'Kube-Scheduler':
Удаляет поды
Хранит логи
Обновляет код
Назначает новые Поды на подходящие узлы (Nodes)
Что такое 'Pod'?
Свитч
Контейнер Docker (прямой аналог)
Виртуальная машина
Минимальная развертываемая единица в K8s (один или несколько контейнеров)
Зачем нужен 'ReplicaSet'?
Управляет сетью
Делает бэкапы
Это база данных
Гарантирует, что указанное количество копий пода запущено
В чем преимущество 'Deployment' перед голым 'ReplicaSet'?
Deployment использует меньше памяти
Никаких преимуществ
Deployment быстрее
Позволяет декларативно управлять обновлениями (Rolling Update, Rollback)
Тип сервиса 'ClusterIP':
Не открывает ничего
Открывает в интернет
Открывает на порту узла
Открывает сервис на внутреннем IP кластера (доступен только внутри)
Тип сервиса 'NodePort':
Использует облачный LoadBalancer
Блокирует доступ
Только внутри кластера
Открывает порт на каждом узле кластера для доступа извне
