Подборка объединяет вопросы, отмеченные на этапах интервью в ПочтаТех. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, backend, sql.
Как работают CTE (Common Table Expressions) в PostgreSQL? SQL-конструкция для временных именованных результатов создаются с помощью ключевого слова WITH доступны только в рамках текущего запроса повышают понятность и…
Проектирование API загрузки больших файлов при нестабильном интернете API должен предусматривать поэтапную загрузку (chunked upload), при которой файл разделяется на отдельные части Каждый фрагмент отправляется…
Как спроектировать возобновляемую загрузку файла при нестабильном соединении с помощью API и управления состоянием Контекст: передача файлов по unreliable network Задействовать API, поддерживающий HTTP Range-запросы,…
SQL-инструмент для выполнения аналитических вычислений над набором строк Они анализируют окно строк относительно текущей записи, не объединяя результат в одну строку Границы окна задаются конструкцией OVER(), где…
Поколения (generations) и условия запуска сборщика мусора Поколения — это подход к управлению памятью, при котором объекты распределяются по продолжительности жизни: на молодое (new), старое (old) и, в некоторых…
Какие примитивы синхронизации есть кроме lock Mutex — блокирует доступ также из других процессов, но по затратам тяжелее lock Semaphore / SemaphoreSlim — задаёт максимальное число потоков, которые могут выполняться…
Асинхронность позволяет отделить ресурсоёмкие задачи от основного потока При выполнении блокирующих операций, способных остановить UI или сервис Для параллелизации задач и более эффективной загрузки процессоров Чтобы…
async-функция в любом случае возвращает Promise, даже когда в её теле отсутствует await до первого await код внутри async-функции выполняется синхронно при достижении await выполнение приостанавливается, а управление…
Почему boxing значимого типа в ссылочный считается дорогой операцией? контекст: управление памятью и производительность при упаковке для значимого типа создаётся объект-обёртка в куче (heap) выделение памяти в куче…
Асинхронный обмен данными: вызов не блокируется Надёжная доставка с помощью очередей и подтверждений Простое масштабирование при увеличении нагрузки Поддержка сложных коммуникационных паттернов (pub/sub,…
Асинхронность и блокировка: конструкция await приостанавливает выполнение метода и позволяет другим задачам продолжить работу, тогда как lock синхронно блокирует общий ресурс. Риск deadlock: после await поток…
Ключевые различия Dispose и Finalize в C# Dispose — метод интерфейса IDisposable, предназначенный для явного освобождения неуправляемых ресурсов. Его можно вызвать вручную либо использовать конструкцию using, чтобы…