90 lines
3.1 KiB
Markdown
90 lines
3.1 KiB
Markdown
|
|
## Тестовое задание ФХР
|
|
|
|
- OS: Linux, AltLinux 11
|
|
- Editor: PhpStorm, MS Code
|
|
- AI Helper: gemini
|
|
|
|
## Установка и запуск
|
|
|
|
Окружения у меня небыло настроено никакого, так
|
|
что все настроено почти с нуля. У меня была готовая
|
|
сборка MySQL, старая типовая сборка compose.yaml
|
|
под Laravel и на этом наверное все.
|
|
|
|
**Время: 1 час 25 минут.**
|
|
|
|
For Linux env:
|
|
|
|
```bash
|
|
mkdir ilya_test
|
|
cd ilya_test
|
|
git clone https://gitea.wired-mind.ru/ijin82/test-FHR.git .
|
|
cp main-repo/.env.example main-repo/.env
|
|
docker compose up
|
|
```
|
|
|
|
Алиасы для комфортного подключения `vim ~/.bashrc`
|
|
```bash
|
|
### Test FHR
|
|
alias fhr-mysql='docker exec -it mysql_fhr /bin/bash'
|
|
alias fhr-nginx='docker exec -it nginx_fhr /bin/bash'
|
|
alias fhr-redis='docker exec -it redis_fhr /bin/sh'
|
|
alias fhr-php='docker exec -u www-data:www-data -it php8_fhr /bin/bash'
|
|
```
|
|
|
|
### Написать сортировку для массива числовых данных от 200 тысяч элементов
|
|
|
|
Запуск теста
|
|
```bash
|
|
fhr-php
|
|
|
|
php artisan app:test-fhr-sort
|
|
```
|
|
|
|
Не буду врать что я всегда знаю какую сортировку лучше
|
|
всего использовать. В таких специальных случаях, когда нужно
|
|
оперировать с большими массивами данных - конечно решение
|
|
гуглится, делаются какие-то тесты, опрашиваются коллеги
|
|
которые потенциально имели опыт с решением подобных задач.
|
|
Конечно это решение я в голове не носил, а достал его из гугла.
|
|
|
|
**Время: 25 минут.**
|
|
|
|
### Игроки и клубы, миграции, сидирование, выгрузка
|
|
|
|
```bash
|
|
fhr-php
|
|
|
|
php artisan migrate # Структура БД
|
|
|
|
# Клубы
|
|
php artisan db:seed --class=ClubSeeder
|
|
# Игроки
|
|
php artisan db:seed --class=PlayerSeeder
|
|
```
|
|
|
|
Выгрузка данных по игрокам и клубам вместе со структурой
|
|
|
|
```bash
|
|
cd /var/lib/mysql-files
|
|
mysqldump -u root -psecret test_fhr clubs players > clubs_and_players_dump.sql
|
|
```
|
|
|
|
После такой выгрузки, дамп появится в папке MySQL-files
|
|
Тестовый дамп лежит в корне проекта **clubs_and_players_dump.sql**
|
|
|
|
**Время: 1 час 25 минут.**
|
|
|
|
### Выгрузка БД пользователей, более 500к+ строк
|
|
|
|
Сидируем БД
|
|
```bash
|
|
# Долгий сид достаточно, минут 15-20 возможно
|
|
php artisan db:seed --class=UserSeeder
|
|
```
|
|
|
|
Дальше открываем главную страницу http://test-fhr.ldev/
|
|
Хост **test-fhr.ldev** нужно будет прописать в hosts в зависимости от вашей ОС.
|
|
|
|
**Время: 2 часа 30 минут.** |