Приложение на Nestjs должно работать аналогично приложению, которое было создано с помощью express. В файле readme.md должна быть таблица со сравнением производительности Nestjs express vs Nestjs fastify
Guards
должны использоваться для работы с авторизацией/аутентификацией +30 баллов- В приложении должны использоваться модули для разбиения структуры приложения на различные части (
User
,Board
,Task
) +30 баллов Exception filters
должны использоваться для обработки исключений в приложении +30 баллов@nestjs/typeorm
должен использоваться для работы с базой данных +30 баллов- Для логирования может использоваться встроенный
Logger
или кастомная имплементация. +30 баллов - Все внешние зависимости для модулей/классов должны предоставляться с помощью механизма
dependency injection
. +30 баллов - В зависисимости от env переменной
USE_FASTIFY
Nest.js
должен использовать илиexpress
илиfastify
+30 баллов - Необходимо сравнить производительность
Nest.js
с использованиемexpress
иfastify
(можно использовать для этих целей artillery) +30 баллов
- Наличие изменений в тестах либо в workflow минус 200 баллов
- Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в
Readme.md
и другую документацию) минус 30% от максимального балла за задание (для этого задания 72 балла) - За отсутствие отдельной ветки для разработки -20 баллов
- За отсутствие
Pull Request
-20 баллов - За неполную информацию в описании
Pull Request
(отсутствует либо некорректен один из 3 обязательных пунктов) -10 баллов - За каждую ошибку линтера при запуске
npm run lint
на основе локального конфига -5 баллов (именноerrors
, неwarnings
) - За каждый непроходящий тест npm run test:auth -20 баллов
- Меньше 3 коммитов (не считая коммиты, вносящие изменения только в
Readme.md
и другую документацию) — -20 баллов
- Для проведения load testing берем один модуль нашего приложения и тестриуем все CRUD методы нашего ресурса (какой ресурс вы будете тестировать вы можете выбрать сами). Если для тестируемого ендпоинта необходима авторизация, то необходимо получить токен заранее и передвать его с каждым запросом.
Вот пример репорта, полученного с помощью vegeta, который вы должны прикрепить в ваш readme.md (тулза для lead tesing может использоваться любая)
Requests | [total, rate, throughput] | 65584, 6558.34, 6558.26 |
Duration | [total, attack, wait] | 10s, 10s, 130.149µs |
Latencies | [min, mean, 50, 90, 95, 99, max] | 122.225µs, 151.803µs, 147.911µs, 160.265µs, 164.189µs, 194.74µs, 3.094ms |
Success | [ratio] | 100.00% |
Status Codes | [code:count] | 200:65584 |
Requests | [total, rate, throughput] | 118489, 11848.94, 11848.84 |
Duration | [total, attack, wait] | 10s, 10s, 80.298µs |
Latencies | [min, mean, 50, 90, 95, 99, max] | 63.858µs, 83.763µs, 81.544µs, 88.909µs, 92.922µs, 136.839µs, 8.852ms |
Success | [ratio] | 100.00% |
Status Codes | [code:count] | 200:118489 |