Files
2026-11-13 22:02:30 +03:00

2.4 KiB

Тезисы для собеседования

  • Стандартная библиотека Python и SQLite позволяют проверить решение локально без установки пакетов и сервера. Для этой небольшой полной выгрузки это снижает сложность эксплуатации.
  • Строка заказа имеет составной ключ. Сначала валидируем обязательные значения, даты и числа, затем различаем нормализованный дубль и конфликт ключа. Первая валидная строка побеждает; источник не дает надежной версии для выбора самой новой.
  • Деньги переводим через Decimal в целые копейки. Суммы и произведения ограничены int64. Неоднозначные даты отклоняем вместо угадывания.
  • Качество можно проверить построчно: каждый отказ имеет одну основную причину и номер CSV. Исправленные принятые строки учитываются отдельно; вход равен сумме принятых и отклоненных.
  • Идемпотентность доказана сравнением логических данных двух запусков. Транзакционность проверена SQL-триггером, который прерывает запись: предыдущие факты и агрегаты сохраняются.
  • SQL-аномалия означает аналитический сигнал; это не доказательство ошибки исходной строки. Порог выбран для демонстрации и требует проверки на реальной предметной области.
  • Ограничения: синтетические данные, полная выгрузка в памяти, зависимость конфликтов от порядка, нет возвратов и общей транзакции между БД и файлами отчетов. Развитие: бизнес-версии, потоковая обработка, миграции и мониторинг.