Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое attr_reader, attr_writer, attr_accessor и зачем они?
attr_reader создает геттер, attr_writer — сеттер, а attr_accessor — оба метода. Они позволяют упрощенно создавать методы для работы с переменными экземпляра.
Для каких сущностей работает Copy on Write?
Copy-on-Write работает для стандартных коллекций Swift, таких как Array, Set, Dictionary, а также для строк (String). Это позволяет избежать создания копий, пока не происходит изменение данных.
Объясните концепцию write concern в MongoDB.
Write concern в MongoDB определяет, насколько уверенно клиент хочет быть в том, что операция записи (вставка, обновление, удаление) была выполнена успешно. Это настраиваемая величина, которая может варьироваться от минимальной уверенности до большинства узлов или всей системы.
Объясните концепцию уровня подтверждения записи (write concern) в MongoDB.
Уровень подтверждения записи (write concern) в MongoDB определяет, сколько узлов репликационного набора должны подтвердить выполнение операции записи (вставка, обновление, удаление), чтобы она считалась успешной. Существует несколько уровней подтверждения:
Unacknowledged: Запись выполняется без ожидания подтверждения.
Acknowledged: Ожидается подтверждение от основного узла.
Majority: Ожидается подтверждение от большинства узлов репликационного набора, что гарантирует сохранность данных.
Какие примитивы синхронизации вы знаете кроме lock (например, ReaderWriterLockSlim, Mutex)?
Основные примитивы:
Monitor (база для lock),
Mutex (межпроцессная блокировка),
Semaphore/SemaphoreSlim (ограничение параллельного доступа),
ReaderWriterLockSlim (оптимизация для частого чтения),
AutoResetEvent/ManualResetEvent (сигнализация между потоками),
Barrier (синхронизация этапов).
Что такое Copy-On-Write (COW)? Можно ли реализовать его для пользовательских структур?
Что такое “write amplification” и как оно проявляется в PostgreSQL, SSD-дисках и LSM-деревьях?
Что означает copy-on-write?
Как работает copy-on-write у массивов и словарей?
Как copy-on-write реализован в стандартных коллекциях Swift?
Рейтинг:
2
Сложность:
5
COW — оптимизация, когда копия данных создается только при изменении. Да, можно реализовать для структур, используя класс-обертку для хранения данных.
Рейтинг:
3
Сложность:
9
Write amplification — это эффект, когда система записывает на диск намного больше данных, чем было изменено логически. В PostgreSQL это проявляется через WAL + страницы 8KB, в SSD — через перезапись больших erase-block, в LSM-деревьях — через постоянное перемещение данных между уровнями.
Рейтинг:
5
Сложность:
4
Copy-on-write — это механизм, при котором PHP не копирует данные при присваивании переменной другой переменной. Копирование выполняется только тогда, когда одна из переменных пытается изменить общее значение. Пока данные неизменяемы — обе переменные указывают на один и тот же блок памяти. Это снижает нагрузку на память и ускоряет выполнение кода. Сам факт изменения становится триггером реального копирования.
Рейтинг:
5
Сложность:
9
Copy-on-write означает, что массивы и словари копируются только при изменении. Пока данные используются только для чтения, несколько переменных могут ссылаться на одно и то же хранилище. Как только одна из них модифицируется, Swift создаёт копию. Это позволяет сочетать value-семантику с высокой производительностью.
Рейтинг:
5
Сложность:
7
Copy-on-write позволяет нескольким копиям коллекции разделять одни и те же данные, пока они не изменяются. При попытке изменения создаётся реальная копия данных. Это даёт поведение value types без постоянного дорогостоящего копирования. Такой механизм используется в Array, Dictionary и Set.
Рейтинг:
3
Сложность:
5
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
8
Рейтинг:
2
Сложность:
5