Веб-приложение для симулятора выращивания животных.
Тестовое задание для SprintHost
- PHP 8.1
- MySQL
- Node 18 + npm/yarn/pnpm (для компиляции клиента)
- Docker + Docker-Compose (опционально)
По заданию требуется хранить состояние (рост, возраст) животного в базе данных. Это порождает рассинхрон клиентов – животные не будут расти синхронно (а отставать на время загрузки страницы, ~1c).\
Для животных в контексте задачи не нужно хранить само состояние, а только дату создания животного, а текущее состояние рассчитать по формуле на клиенте (т.к формулы не ресурсозатратные). В ином случае, необходимо рассчитывать это состояние на сервере. Возможные варианты:
- Запускать команду/скрипт с рассчетом по CRON (может быть ресурсозатратно, если пользователей будет много, минимально можно запустить скрипт через 1 секунду и получить рассинхрон)
- Запускать команду/скрипт с рассчетом текущих животных пользователя при их запросе (сделано в этом решении)
- [Теоретически] Запускать процедуру с рассчетом и выдачей текущих животных пользователя при запросе
- Отказаться от состояний на сервере