На этой неделе прошел третий бэкенд проект “Загрузчик страниц”.
В проекте нужно сделать утилиту для скачивания указанного адреса из сети. Сохранение html файла и всех локально подключенных файлов.
В проекте в основном идет работа c I/O и асинхронностью, немного HTTP и DOM. Разработка ведется через тесты, как во втором проекте.
Я бы даже назвал этот проект, продолжением первого и второго, в плане, того что должно быть в библиотеке. (дебаг, обработка ошибок и исключений, отображение прогресса для пользователя).
Самым сложным был шаг с загрузкой подключенных файлов, ментор требует максимально плоскую цепочку промисов, по началу кажется это нереальным, но потом находишь решение и код реально становится проще читать, без вложенных then. Именно этот шаг определяет, как вы разобрались с промисами.
Мои опасения насчет упражнения “GET-запрос” из курса “Синхронная асинхронность”, не оправдались, не нужно было ходить по всем ссылкам (как в упражнении) и все скачивать, но упражнение дало понимание и столкнуло с тонкостями работы с ссылками. Упражнения все таки надо проходить, они не просто так.
Спасибо Кириллу за менторинг в проекте, за терпение к многократным тупнякам в промисах, за обращение внимание на мелкие, но важные детали.
Дальше надо проходить курсы необходимые для четвертого бэк проекта.