Files
test-FHR/main-repo/README.md
T
2026-06-09 19:47:57 +02:00

101 lines
3.7 KiB
Markdown

## Тестовое задание ФХР
- OS: Linux, AltLinux 11
- Editor: PhpStorm, MS Code
- AI Helper: gemini
## Установка и запуск
Окружения у меня небыло настроено никакого, так
что все настроено почти с нуля. У меня была готовая
сборка MySQL, старая типовая сборка compose.yaml
под Laravel и на этом наверное все.
**Время: 1 час 25 минут.**
For Linux env:
Алиасы для комфортного подключения `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'
```
```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
```
Установка компонент и миграции
```bash
fhr-php
composer i
php artisan migrate
```
**Важно:** Здесь нужно перезапустить docker compose потому что супервизор не смог запуститься без установленных компонент.
Уверен это можно докрутить, но я уже слегка подустал.
### Написать сортировку для массива числовых данных от 200 тысяч элементов
Запуск теста
```bash
fhr-php
php artisan app:test-fhr-sort
```
Не буду врать что я всегда знаю какую сортировку лучше
всего использовать. В таких специальных случаях, когда нужно
оперировать с большими массивами данных - конечно решение
гуглится, делаются какие-то тесты, опрашиваются коллеги
которые потенциально имели опыт с решением подобных задач.
Конечно это решение я в голове не носил, а достал его из гугла.
**Время: 25 минут.**
### Игроки и клубы, миграции, сидирование, выгрузка
```bash
fhr-php
# Клубы
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 минут.**