| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Критерий | Штрафные баллы за несоблюдения требований | Баллы | Комментарии | Итоговая оценка | ||||||||||||||||||||||||||||
2 | Выполнение задачи | 100 | |||||||||||||||||||||||||||||||
3 | Обязательный функционал проекта реализован в полном объеме | ||||||||||||||||||||||||||||||||
4 | При выполнении кода в консоли не возникает ошибок | -10 баллов за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
5 | Именование | ||||||||||||||||||||||||||||||||
6 | Переменные объявлены camelCase’ом: Правильно: userName Неправильно: UserName, username | -1 балл за каждую ошибку при объявлении переменной | |||||||||||||||||||||||||||||||
7 | В названиях функций и переменных не используется транслит: Правильно: name, number Неправильно: imya, chislo | -1 балл за каждое некорректное название переменной | |||||||||||||||||||||||||||||||
8 | Из названия переменной или функции понятно, для чего она используется: Правильно: button (для кнопки), userName (для имени пользователя) Неправильно: a (для кнопки), b (для имени пользователя) | -1 балл за каждое некорректное название переменной | |||||||||||||||||||||||||||||||
9 | Массивы названы существительными во множественном числе: Правильно: const cities = [”Лондон”, “Берлин”, “Токио”]; Неправильно: const name = [”Аня”, “Юля”, “Даша”]; | -1 балл за каждое некорректное название массива | |||||||||||||||||||||||||||||||
10 | Имя функции содержит глагол: Правильно: getData(), generateForecast(), printNames() Неправильно: a(), name(), cat() | -1 балл за каждое некорректное название массива | |||||||||||||||||||||||||||||||
11 | Названия констант (постоянных значений) написаны заглавными буквами Правильно: const URL = “https://codegirl.ru/” Неправильно: const url = “https://codegirl.ru/” | -1 балл за каждое некорректное название функции | |||||||||||||||||||||||||||||||
12 | Форматирование и внешний вид | ||||||||||||||||||||||||||||||||
13 | Неизменяемые значения объявлены через const Ниже пример использования переменных, которые нужно объявлять через let. Если ничего такого делать не планируешь, то смело используй const. let value = “Привет” value = 123; let i = 0; i++; Помни, что объекты / массивы, объявленные через const, не накладывают ограничений на операции с их содержимым. | -3 балла за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
14 | Список констант идёт перед основным кодом. | -3 балла за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
15 | Используются обязательные блоки кода Исключения: тернарный оператор и однострочные стрелочные функции Правильно: let correct = true; if (answer != x * y) { correct = false; } Неправильно: let correct = true; if (answer != x * y) correct = false; | -1 балл за каждое некорректное название функции | |||||||||||||||||||||||||||||||
16 | Оператор присваивания не используется как часть выражения. Правильно: balance -= value; return balance; Неправильно: return balance -= value;; | -1 балл за каждое некорректное название функции | |||||||||||||||||||||||||||||||
17 | Код соответствует стилю оформления Codegirl School | -1 балл за каждое несоответствие | |||||||||||||||||||||||||||||||
18 | Единообразие | ||||||||||||||||||||||||||||||||
19 | При использовании встроенного API, который поддерживает несколько вариантов использования, используется один способ. Правильно: const a = document.querySelector(“#a”); const b = document.querySelector(“.b”); Неправильно: const a = document.getElementById(“a”); const b = document.querySelector(“.b”); | -1 балл за каждую запись | |||||||||||||||||||||||||||||||
20 | Для вставки пользовательских строк (имён, фамилий, названий и т. д) используется textContent. Правильно: button.textContent = “Кнопка” Неправильно: button.innerHTML = “Кнопка” | -2 балла за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
21 | Мусор | ||||||||||||||||||||||||||||||||
22 | Нет вывода в консоль закомментированного или неиспользуемого кода | -2 балла за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
23 | Корректность | ||||||||||||||||||||||||||||||||
24 | Если из функции должно возвращаться значение, то оно всегда возвращается: Правильно: function doRandomStuff(num) { if (num > 2) { return num; } return 10; // значение будет возвращено в любом случае } Неправильно: function doRandomStuff(num) { if (num > 2) { return num; } // если не попадем в if, значение возвращено не будет }: | -3 балла за каждое несоответствие | |||||||||||||||||||||||||||||||
25 | Возвращаемое значение функции не игнорируется: Правильно: function addNumbers(a, b) { return a + b } // записали результат в переменную const result = addNumbers(4,5); Неправильно: addNumbers(4,5); // результат потерян | -3 балла за каждое несоответствие | |||||||||||||||||||||||||||||||
26 | Используются строгие сравнения вместо нестрогих: Правильно: value === 2 Неправильно: value == 2 Если нужно, используй явное приведение типов | -1 балл за каждое несоответствие | |||||||||||||||||||||||||||||||
27 | Включен строгий режим: В начале js-файлов установлена директива 'use strict'; | ||||||||||||||||||||||||||||||||
28 | Модули не экспортируют изменяющиеся переменные. Правильно: export const result; Неправильно: export let result; | -1 балл за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
29 | Избыточность | ||||||||||||||||||||||||||||||||
30 | Повторяющийся код вынесен в функции | -5 баллов за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
31 | Поиск элементов по селекторам делается минимальное количество раз, после этого ссылки на элементы сохраняются в переменных. | -5 баллов за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
32 | Оптимальность | ||||||||||||||||||||||||||||||||
33 | Множественные DOM-операции производятся на элементах, которые не добавлены в DOM. Для множественной вставки используется DocumentFragment | -3 балла за несоблюдение пункта в целом | |||||||||||||||||||||||||||||||
34 | Обработчики не добавляются в цикле (используется прием “делегирование”) | -3 балла за несоблюдение пункта в цело | |||||||||||||||||||||||||||||||
35 | Разное | ||||||||||||||||||||||||||||||||
36 | Реализация дополнительной функциональности согласно ТЗ (1-10 баллов) | ||||||||||||||||||||||||||||||||
37 | Дополнительный функционал (вне технического задания) (5 баллов) Можешь запрограммировать пару-тройку «фишек» на свое усмотрение, это будет оценено дополнительно | 5 дополнительных баллов | |||||||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||||||
100 |