Подборка объединяет вопросы, отмеченные на этапах интервью в Сбер. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, backend.
Откат кода не исправляет уже записанные неверные данные. Сначала нужно остановить источник повреждения, определить затронутые записи и подготовить проверяемую процедуру восстановления с резервной копией.
Метод должен проверить null и пустой разделитель, разобрать каждый фрагмент как IP-адрес и вернуть коллекцию. Первый недопустимый адрес приводит к FormatException.
IPAddress.TryParse возвращает bool, а распознанный адрес выдаёт через out-параметр. Результат следует использовать только при true; неверная строка обычно не требует исключения для самого TryParse.
Основные используемые версии — IPv4 с 32-битными адресами и IPv6 со 128-битными. Определить версию конкретного адреса из задания нельзя, пока сам адрес не приведён.
Значимый тип хранит само значение, ссылочный — ссылку на объект; правило «struct всегда в стеке» неверно. Поколения GC помогают чаще собирать короткоживущие объекты и реже обходить долгоживущие.
Финализатор — недетерминированная резервная очистка объекта перед освобождением его памяти GC. Соединения с БД нужно закрывать через Dispose/using, а не ждать финализации.
GC запускается при превышении бюджета выделений, нехватке памяти или явном GC.Collect(). Он находит достижимые объекты, освобождает недостижимые и при необходимости уплотняет память.
Назовите ожидаемый диапазон дохода на руки и уточните состав компенсации: фиксированную часть, бонусы и условия пересмотра. Не смешивайте сумму до налогов и после них.
Для передачи вложения (файла/документа) в запросе чаще всего используют формат multipart/form-data. Это позволяет отправлять одновременно данные формы и файлы.