Подборка объединяет вопросы, отмеченные на этапах интервью в Платформа. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, math, patterns.
Отличия IEnumerable<T> от IQueryable<T> и назначение QueryProvider IEnumerable<T> — интерфейс для работы с коллекциями, выполняющий LINQ-запросы в памяти (LINQ to Objects) IQueryable<T> — расширяет IEnumerable<T> и…
Зачем нужен StringBuilder и каким образом он повышает эффективность работы со строками? класс, предназначенный для эффективного изменения строк в Java строки являются immutable (изменить их нельзя) при конкатенации с…
Многопоточность и асинхронный код в проектах Многопоточность применял для увеличения степени параллелизма и ускорения выполнения задач. Для синхронизации доступа к разделяемым ресурсам и защиты от гонок данных…
Как в 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: организует подписку на…
Требования к чистым функциям и нарушающие их побочные эффекты Чистая функция возвращает один и тот же результат при одинаковых входных данных Она не зависит от внешнего состояния и не изменяет его, то есть не…