- Для начала, каждый должен иметь github аккаунт, если нет - регистрируемся
- Посмотрите семинары с консультациями к экзамену:
- Посмотрите видео по антипаттернам и рефакторингу:
- Если кто потерялся, то материалы курса тут:
- Сделайте форк этого репозитория https://github.com/HowProgrammingWorks/Exams
- Склонируйте репозиторий к себе на машину или вы можете делать задания прямо в веб-интерфейсе гитхаба
- В своем форке сделайте ветку
exams
и в ней дальше выполните задания - В директории
Tasks
есть 38 заданий, выберите себе любые 2 из них - В файле с заданием написан плохой код, вам нужно его оптимизировать в несколько шагов
- Код задания работает, и выдает правильный результат, вам нужно исправлять файл, но не сломать код
- Дл работы с кодом вам может понадобиться:
- Используйте тесты из каталога
Tests
для проверки решений. Чтобы запустить пример с тестами:- в папке с кодом пишем, например:
node size.js
- получаем в терминале:
Passed: 11 of 11
или ошибки
- в папке с кодом пишем, например:
- Ваша задача улучшить:
- Понятность кода,
- Стиль,
- Простоту,
- Качество,
- Поддерживаемость,
- Надежность,
- Тестируемость
- Найдите себе двух друзей из группы и сделайте перекрестный ревью кода в пул-реквестах
- Тут чеклист частых ошибок (после ревью они точно должны быть исправлены):
- Не модифицируйте входные параметры функций
- Предпочитайте стрелочніе функции для JavaScript и
lambda
дляPython
- Используйте eslint и prettier для JavaScript с нашими настройками (см. в корне этого репозитория)
- Предпочтительно использвать
for..of
илиfor
по переменной илиArray/map
, и избегайтеfor..in
иforEach
- Используйте промежуточные идентификаторы разделяя длинные выражения
- Предпочитайте
const
и в крайнем случае используйтеlet
, но никогда не используйтеvar
- Преобразуйте все магические значения в константы
- Придерживайтесь правил именования идентификаторов
- Хорошо подумайте над именами идентификаторов, чтобы при прочтении кода всем было понятно их содержимое
- Не делайте слишком длнииых функций
- Не делайте большую стопку if-выражений, вместо этого используйте массивы и объекты
- Если вы пишете не на js, то переведите код на свой язык, насколько это возможно
- Каждый шаг делайте отдельным коммитом, важно не переписать с нуля, а именно пошагово улучшать. На второй консультации я показал пример того, как нужно оптимизировать код
- Когда закончите - сделайте пул-реквест в мой репозиторий и заполните форму, в которой укажите ссылку на свой форк с готовым заданием: https://forms.gle/qmbwSNCSbtDf6g4X7
- Всем успехов в Новом Году и на экзамене!