Skip to content

Latest commit

 

History

History
90 lines (77 loc) · 6.18 KB

typescript-basics.md

File metadata and controls

90 lines (77 loc) · 6.18 KB

Typescript basics

Оценка миграции (максимум 260 баллов)

  • За каждый успешно пройденный тест плюс 10 баллов (максимум 170 баллов)
  • В проекте настроен ESLint и имеется правило no-explicit-any плюс 20 баллов
  • В проекте имеется tsconfig и в нем noImplicitAny: true плюс 20 баллов
  • В проекте имеется tsconfig и в нем включена опция strict и при этом strict-related опции не перезаписаны в false плюс 50 баллов

Оценка TSDoc (максимум 70 баллов)

Баллы за описание функций при помощи TSDoc

Расчет количества баллов осуществляется по формуле
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;

Подсказки:

Как увидеть различия для папок test и .github между текущей веткой и веткой master из темплейта

Помимо несовпадения, отображаемого в workflow во время пулл реквеста (MD5 check), есть следующий способ:

  1. Открыть глобальный .gitconfig: git config --global -e
  2. Добавить в глобальный .gitconfig следующие строки. Если вы не используете VSCode замените code на соответстующую вашей IDE команду (или путь к выполняемому файлу).
  [diff]
    tool = vscode
  [difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE
  1. Добавить в качестве дополнительного удаленного репозитория темплейт
  git remote add template https://github.com/rolling-scopes-school/nodejs-course-template.git
  1. Создать локальную копию ветки master из темплейта git fetch template master:template-master
  2. Запустить сравнение для текущей ветки с веткой master темплейта для тестов git difftool <название текущей ветки> template-master test/
  3. Запустить сравнение для текущей ветки с веткой master темплейта для workflow git difftool <название текущей ветки> template-master .github/