Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 3.14 KB

README.md

File metadata and controls

28 lines (22 loc) · 3.14 KB

Милые пёсики

У нас есть программа для загрузки картинок собак.
На вход подается порода собаки. Функция находит одну случайную картинку этой собаки и загружает её на Я.Диск. Если у породы есть подпороды, то для каждой подпороды загружается по одной картинки. Например, для doberman будет одна картинка, а для spaniel 7 картинок по одной на каждую породу.

Задание:

Для этой программы уже написан тест. Нужно перечислить 10 основных проблем в коде.
Все найденные проблемы нужно отранжировать по критичности.

Задание со звёздочкой:

Переписать код, так как Вы считаете нужным, исправив все проблемы.

===

Основные проблемы в коде:

  1. axios использует промисы, но нигде нет обработки ошибок с помощью .catch(). Может привести к некорректной работе.
  2. Нет await для асинхронных вызовов: есть фукнкции, которые зависят от других, но они могут выполняться далее некорректно.
  3. Функция fetchUrls дублируется и вызывается несколько раз подряд. Дублирование кода, и лишняя нагрузка на сеть.
  4. Захардкожен токен для Яндекс.Диск. Должно передаваться в переменных окружения.
  5. Проблема в порядке загрузки изображений.
  6. Некорректно создаётся папка в Яндекс.Диск. Нет проверки, создана ли папка. Нет очистки. Все тесты должны быть "чистом" и изолированном окружении.
  7. Отсутствует проверка валидации сохранения файлов через url. Яндекс.Диск загружает файлы асинхронно, по этому мы должны локально убедиться в том, что файлы были сохранены, прежде, чем проводить проверки.
  8. Неиспользуемые переменные в t(). Функция t() вызывает u(), но не использует результат. Помимо этого нейминг функций довольно нечитаемый, непредсказуемый.
  9. Отсутствует JS Doc
  10. В проверке отсутствует жесткая валидация. Исходных файлов может быть больше, чем загруженных и наоборот.