https://github.com/maximaster/practice
Задание для практики
https://github.com/maximaster/practice
Last synced: about 1 month ago
JSON representation
Задание для практики
- Host: GitHub
- URL: https://github.com/maximaster/practice
- Owner: maximaster
- License: mit
- Created: 2026-06-07T20:10:58.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2026-06-07T22:12:34.000Z (about 2 months ago)
- Last Synced: 2026-06-07T23:21:01.808Z (about 2 months ago)
- Language: PHP
- Homepage: https://maximaster.github.io/practice/
- Size: 127 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Практика
Привет! Этот репозиторий содержит задание для практики. Что нужно сделать,
бриф заказчика, структура репозитория и что прислать — всё в гайде:
https://maximaster.github.io/practice/ (локально: `just guide-serve`).
## Требования к окружению
Нужны `git`, `docker` и [devbox](https://www.jetify.com/devbox).
Остальные инструменты устанавливаются с помощью последнего.
Выполните `devbox shell` и вам будет доступен весь нужный софт.
## Работа с репозиторием
Вызовите `just --list`, чтобы увидеть список доступных команд для работы с проектом.
Изучите [Justfile](Justfile), чтобы понять как именно работают эти команды.
После запуска будут доступны:
- Backend: `http://localhost:8080` (PHP 8.5, Slim 4, Cycle ORM, SQLite; id — UUIDv7)
- Frontend: `http://localhost:5173` (TypeScript + Vite)
## Качество кода
Статанализ настроен строго и входит в `just verify` (то же гоняет CI):
backend — php-cs-fixer, PHPStan (max + strict), PHPMD, Rector; frontend —
ESLint (type-aware, strict), Prettier, `tsc`. Юнит-тесты (`just test`) —
Testo (backend) и Vitest (frontend).
- `just lint` — проверить всё, не поднимая приложение.
- `just fmt` — автоформат и безопасные автоправки.
## Производительность
Сервер заказчика скромный, поэтому бэкенд запускается с лимитом памяти
`memory_limit=96M`, а контейнер ограничен `mem_limit=256m` (см. `compose.yaml`).
Функциональные тесты должны проходить в этих рамках. Каждый ответ отдаёт
`Server-Timing` и `X-DB-Query-Count` — по ним видно время и число запросов к БД
(метрики наблюдаются, но сборку не гейтят).