- За каждый успешно пройденный тест плюс 10 баллов (максимум 170 баллов)
- В проекте настроен ESLint и имеется правило
no-explicit-any
плюс 20 баллов - В проекте имеется
tsconfig
и в немnoImplicitAny: true
плюс 20 баллов - В проекте имеется
tsconfig
и в нем включена опция strict и при этом strict-related опции не перезаписаны вfalse
плюс 50 баллов
Расчет количества баллов осуществляется по формуле
X = ( (k1 + k2 + ... + kn) / n) * 70
Где X - количество баллов, округленное до целого числа вверх
n - общее количество пользовательских функций
k - коэффициент выполнения TSDoc-описания для каждой пользовательской функции, где:
- k = 0, если TSDoc-описание полностью неправильное или отсутствует
- k = 0.5, если TSDoc-описание содержит ошибки в части типов или фактического описания работы функции (без учета орфографических, пунктуационных ошибок)
- k = 1, если TSDoc-описание корректно
Штрафы:
- Наличие изменений в тестах либо в workflow минус 150 баллов
- Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в
Readme.md
и вспомогательные файлы минус 30% от максимального балла за задание (для этого задания 99 баллов) - Не все файлы с кодом в папке src имеют расширение
.ts
минус 50 баллов - За каждую ошибку линтера при запуске
npm run lint
на основе локального конфига минус 10 баллов (именноerrors
, неwarnings
) - Имеется явно указанный тип
any
, минус 20 баллов за каждое использование - За отсутствие отдельной ветки для разработки минус 20 баллов
- За отсутствие
Pull Request
минус 20 баллов - За неполную информацию в описании
Pull Request
(отсутствует либо некорректен один из 3 обязательных пунктов) минус 20 баллов - Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в
Readme.md
, либо другие вспомогательные файлы — минус 20 баллов
Примеры TSDoc-описаний
Корректное описание
/**
* Returns the sum of a and b
* @param a first term number
* @param b second term number
* @returns Sum of a and b number
*/
const sum = (a: number, b: number): number => a + b;
Частично корректное описание (отсутствует описание одного из входных параметров)
/**
* Returns the sum of a and b
* @param a first term number
* @returns Sum of a and b number
*/
const sum = (a: number, b: number): number => a + b;
Некорректное описание (неправильные описание функции и возвращаемого значения, отсутствует описание одного из входных параметров)
/**
* Returns the square root from a
* @param a first term number
* @returns string "OK" or "NOT_FOUND"
*/
const sum = (a: number, b: number): number => a + b;
Помимо несовпадения, отображаемого в workflow во время пулл реквеста (
MD5 check
), есть следующий способ:
- Открыть глобальный
.gitconfig
:git config --global -e
- Добавить в глобальный
.gitconfig
следующие строки. Если вы не используете VSCode заменитеcode
на соответстующую вашей IDE команду (или путь к выполняемому файлу).[diff] tool = vscode [difftool "vscode"] cmd = code --wait --diff $LOCAL $REMOTE
- Добавить в качестве дополнительного удаленного репозитория темплейт
git remote add template https://github.com/rolling-scopes-school/nodejs-course-template.git
- Создать локальную копию ветки master из темплейта
git fetch template master:template-master
- Запустить сравнение для текущей ветки с веткой master темплейта для тестов
git difftool <название текущей ветки> template-master test/
- Запустить сравнение для текущей ветки с веткой master темплейта для workflow
git difftool <название текущей ветки> template-master .github/