questions.md 5.9 KB

В чем заключается ключевой инженерный вызов при реализации декларативного рендеринга? Эффективный расчет разницы (diffing) между состояниями пользовательского интерфейса для минимального обновления DOM.

Какую парадигму описывает декларативный рендеринг в отличие от императивного? Парадигму, при которой разработчик описывает, каким должен быть интерфейс в зависимости от состояния, а не предписывает пошаговые команды для его изменения.

Как декларативный подход влияет на архитектуру приложения с точки зрения разделения ответственности? Он позволяет четко разделить бизнес-логику (управление состоянием) и логику представления (отображение), упрощая тестирование и проектирование.

Какие основные стратегии реализации декларативного рендеринга существуют в современных фреймворках? Стратегия Virtual DOM (React), компиляция в императивный код (Svelte) и тонкая реактивность на основе Proxy (Vue 3).

Какое фундаментальное ограничение описывает теорема Consistency Availability Partition Tolerance для распределенных систем? В условиях сетевого раздела система может гарантировать либо Согласованность (Consistency), либо Доступность (Availability), но не оба свойства одновременно.

Какую модель согласованности чаще всего применяют на практике и почему? Модель согласованности в конечном счете (Eventual Consistency), так как она обеспечивает доступность и отказоустойчивость, что критично для многих современных масштабируемых систем.

Какой механизм используют системы вроде DynamoDB для обеспечения актуальности данных при чтении и записи? Механизм кворумов (Read/Write Quorum), где запись и чтение считаются успешными при подтверждении от заданного числа узлов.

Что лежит в основе достижения согласованности в конечном счете? Асинхронная репликация данных между узлами и использование механизмов разрешения конфликтов, таких как векторные часы или CRDT.

Какие два фактора являются главными препятствиями для тестируемости кода? Высокая связанность (tight coupling) компонентов и наличие скрытых зависимостей.

Какой принцип и механизм являются основой для создания тестируемого дизайна? Принцип инверсии зависимостей (DIP), реализуемый через механизм внедрения зависимостей (Dependency Injection).

Какую основную цель преследует модульное (unit) тестирование? Проверку корректности логики отдельного класса или функции в полной изоляции от внешних зависимостей.

Какие архитектурные паттерны формализуют разделение бизнес-логики и инфраструктурного кода для улучшения тестируемости? Гексагональная архитектура (Hexagonal Architecture) и Чистая архитектура (Clean Architecture).

Какую основную задачу решает оркестрация контейнеров? Автоматизацию развертывания, масштабирования, управления сетью и обеспечения отказоустойчивости контейнеризированных приложений в кластере.

Какие низкоуровневые механизмы ядра Linux обеспечивают изоляцию контейнеров? Cgroups (control groups) для ограничения ресурсов и namespaces для изоляции сетевого стека, процессов и файловой системы.

Что является минимальной и неделимой единицей развертывания (deployable unit) в Kubernetes? Pod (Под) — абстракция, которая может содержать один или несколько тесно связанных контейнеров.

Какой ключевой принцип управления лежит в основе работы Kubernetes? Принцип декларативного управления состоянием через управляющие циклы (control loops), где система автоматически приводит реальное состояние к описанному желаемому.