- Логирование (как минимум
url
,query parameters
,body
) для всех запросов к серверу, а также кода ответа (status code
)плюс 20 баллов - Добавлена централизованная обработка всех ошибок, которая включает отправку респонса с соответствующим кодом http статуса и их логирование плюс 20 баллов
- Добавлены обработка и логирование ошибок на событие
uncaughtException
плюс 10 баллов - Добавлены обработка и логирование ошибок на событие
unhandledRejection
плюс 10 баллов - Процесс логирования осуществляется единственным модулем (т.е. код, осуществляющий логирование, находится в одном модуле, при этом этот модуль может использоваться внутри других модулей) плюс 20 баллов
- Логи записываются в файл плюс 20 баллов
- Логи ошибок записываются в отдельный файл (либо только в него, либо в дополнение к записи в общий файл) плюс 10 баллов
- Добавить переменную окружения для указания уровня логирования и соотвутствующий функционал плюс 20 баллов
При указании уровня логирования будут регистрироваться записи этого уровня и всех уровней с более высоким приоритетом. Например, указав уровень 2, вы соберете в лог все сообщения уровней 0, 1 и 2. Пример уровней логирования:
0
:error
(ошибка)1
:warn
(предупреждение)2
:info
(информация)3
:debug
(отладочное сообщение)4
:all
(все сообщения)
- Наличие изменений в тестах либо в workflow минус 100 баллов
- Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в
Readme.md
и вспомогательные файлы минус 30% от максимального балла за задание (для этого задания 39 баллов) - За каждый непрошедший тест минус 10 баллов
- За каждую ошибку линтера при запуске
npm run lint
на основе локального конфига, равно как и за ошибки компиляции на основе локального tsconfig минус 10 баллов (именноerrors
, неwarnings
) - Имеется явно указанный тип
any
минус 20 баллов за каждое использование - За отсутствие отдельной ветки для разработки минус 20 баллов
- За отсутствие
Pull Request
минус 20 баллов - За неполную информацию в описании
Pull Request
(отсутствует либо некорректен один из 3 обязательных пунктов) минус 20 баллов - Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в
Readme.md
, либо другие вспомогательные файлы — минус 20 баллов
Подсказки:
- (3 пункт) Для проверки пропишите
throw Error('Oops!')
ПОСЛЕprocess.on('uncaughtException', () => {...})
. Например, в случае с Express:
// Express initialization
const app = express().use(...);
// Exceptions catcher
process.on('uncaughtException'...);
// PUT IT HERE
throw Error('Oops!');
module.exports = app;
Как результат: вывод в консоли отловленной ошибки
- (4 пункт) Для проверки пропишите
Promise.reject(Error('Oops!'))
ВНЕ инициализации express и ПОСЛЕprocess.on('unhandledRejection', () => {...})
. Например, в случае с Express:
// Express initialization
const app = express().use(...);
// Exceptions catcher
process.on('unhandledRejection'...);
// PUT IT HERE
Promise.reject(Error('Oops!'));
module.exports = app;
Как результат: вывод в консоли отловленной ошибки