README.md

Тестовое задание Playtox Junior Java Developer

  • Данный документ содержит описание стандартного тестового задания для соискателей на должность Junior Java разработчика.

Общее описание

  • Необходимо разработать приложение в соответствии с изложенными ниже требованиями.

Требования

Общие требования

  • Архитектура - Java SE 8.0 (или выше), использование библиотек и фреймворков на усмотрение исполнителя.
  • Должна быть система логирования (на основе готового решения, например Log4j). Приложение должно логировать в файл любые действия, приводящие к изменению данных. Приложение должно корректно обрабатывать и логировать ошибки.

Структура данных

В приложении должна быть сущность Account (счет) содержащая поля:
  • ID (строковое) - идентификатор счета.
  • Money (целочисленное) - сумма средств на счете.

Функциональные требования

  • При запуске приложение должно создать четыре (или более) экземпляров объекта Account со случайными значениями ID и значениями money равным 10000.
  • В приложении запускается несколько (не менее двух) независимых потоков. Потоки должны просыпаться каждые 1000-2000 мс. Время на которое засыпает поток выбирается случайно при каждом исполнении.
  • Потоки должны выполнять перевод средств с одного счета на другой. Сумма списания или зачисления определяется случайным образом. Поле money не должно становиться отрицательным, сумма money на всех счетах не должна меняться.
  • Решение должно быть масштабируемым по количеству счетов и потоков и обеспечивать возможность одновременного (параллельного) перевода средств со счета a1 на счет a2 и со счета a3 на счет а4 в разных потоках.
  • Результаты всех транзакций должны записываться в лог.
  • После 30 выполненных транзакций приложение должно завершиться.
Конвейеры
0 успешных
0 с ошибкой