Подборка объединяет вопросы, отмеченные на этапах интервью в Платформа. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, math, design-patterns.
Как в C# устроено замыкание (closure) с внешней переменной замыкание — это сохранённый контекст окружения лямбды внешняя переменная (например, counter) захватывается по ссылке, а не копируется все обращения к этой…
Большинство DI-контейнеров поддерживает регистрацию нескольких реализаций одного интерфейса Для каждой реализации задаются отдельные идентификаторы — ключи, имена или теги Все реализации можно получить через общую…
Как устроен Dictionary<TKey, TValue>: бакеты и коллизии Dictionary представляет собой хеш-таблицу, использующую массив бакетов Для ключа вычисляется индекс бакета: hash(key) % capacity В одном бакете оказываются…
Выбор стратегии: фабрика, DI или другой паттерн архитектурный подход к созданию объектов фабрика: отвечает за создание объектов и скрывает детали их конструирования Dependency Injection (DI): получает зависимости…
Принципы SOLID: SRP, OCP, LSP, ISP и DIP с практическими примерами SOLID — пять принципов, которые помогают проектировать качественный объектно-ориентированный код SRP (Single Responsibility Principle): у класса…
Как IQueryable<T> преобразует лямбда-выражения в SQL IQueryable<T> предназначен для формирования запросов к удалённому источнику данных, например к базе данных. В этом случае лямбда-выражения представлены как…
В LINQ предусмотрены два варианта выполнения: отложенное (deferred) и немедленное. Операторы, результатом которых является IEnumerable, например Where и Select, применяют отложенное выполнение: запрос создаётся, но…
Singleton: оставляет один экземпляр класса, что удобно для конфигурации и логирования Factory Method: создаёт объекты без жёсткой связи с конкретными классами и упрощает расширение Observer: организует подписку на…
Требования к чистым функциям и нарушающие их побочные эффекты Чистая функция возвращает один и тот же результат при одинаковых входных данных Она не зависит от внешнего состояния и не изменяет его, то есть не…
Почему доступ к элементу List<T> по индексу выполняется за O(1) В .NET коллекция List<T> построена на основе динамического массива Её элементы размещаются в непрерывном блоке памяти Обращение по индексу использует…
Основные операции над векторами и матрицами Векторы и матрицы составляют основу линейной алгебры Скалярное произведение: складывает произведения соответствующих компонент; характеризует проекцию одного вектора на…
Категории типов данных в .NET и различия value/reference type В .NET типы данных относятся к двум основным категориям: value type и reference type Value type непосредственно содержат значение и хранят данные в стеке…