суббота, 27 февраля 2010 г.

Рассылка емейлов

Эта задача предполагает написание работающего кода. Лучше всего давать как домашнее задание.

В компании - 1 миллион клиентов.
Ко дню рождения компании нужно разослать всем емейлы с персонализированным текстом. День рождения - через неделю.
Напишите программу на любом языке с использованием любого источника данных (хоть файл, хоть xml).

Сложность тут в том, что емейл серверы - довольно медленная штука. И если рассылать все письма по очереди, то процесс может занять в буквальном смысле месяцы.
У собеседника нужно поинтересоваться, работал ли он с рассылкой почты. Если нет, то рассказать о том, что написано выше.

Оценка работы и беседа по горячим следам:

  1. Посмотрите на реализацию многопоточной обработки. Если ее нет, то дальше можно не разговаривать.
  2. Каким образом приложение выбирает, какому потоку отсылать какое письмо. Если есть центральный диспетчер - решение не оптимально, попросить предложить другое решение.
  3. Есть ли возможность восстановить работу программы, если произошел сбой работы. Другими словами, можно ли понять, какие емейлы отправлены, а какие - нет. Если это не реализовано, то спросить, как сделать. Если нету, попросить придумать.
  4. Если нет юнит-тестов, попросить написать один-два самых критичных.
  5. Наверняка в коде будут места, где нужна синхронизация потоков. На примере этих мест порасспрашивать собеседника.

Комментариев нет:

Отправить комментарий