Hexlet projects. part 3.

Пишу немного с задержкой, неделю назад завершился третий проект на hexlet. На этот раз была затронута такая тема как асинхронное программирование.
Сразу оговорюсь, что мне лично эта тема дается очень тяжело, но я стараюсь разобраться.
В курсе асинхронщина проходилась в лучших традициях хекслета, начиная с самых основ и по пути рефакторинга. Вначале все началось с callback функций, которые просто откровенно выносят мозг, как только программа становится более менее сложной, далее идет рассмотрение более современных способов, решающих проблему асинхронного выполнения – промисы и в самом конце настоящее спасение – async/await.
Суть проекта была в построении CLI утилиты, которая скачивает веб страницу с вложенными линками, которые указаны в тегах, а так же меняет ссылки в этих самых тегах на локальные. Вначале я использовал promises для асинхронного кода (чтение данных, загрузка из сети), после того как понял что мое приложение развило слишком высокую сложность и с промисами очень сложно отслеживать ошибки и вообще следить за flow, я переписал все на async/await, что значительно упростило работу с кодом и само приложение. В проекте очень много использовалось стандартных модулей node.js – fs, url, os, path, что дало возможность ближе познакомиться с ними и изучить их возможности. Еще хочу отметить данное видео от Филипа Робертса, оно очень сильно помогло мне разобраться с асинхронным флоу. Тем у кого возникают трудности с этим, маст хев. Ну и у него отличный сайт, где можно поиграться с работой любого кода и визуально посмотреть на стек вызовов.
В целом как и ранее проект очень сильно помог мне разобраться в определенной предметной области, но этот проект отличался тем, что очень сильно вымотал, не знаю почему именно, видимо это особенность асинхронного программирования :) Итоги как всегда в GitHub.

На этом основные проекты закончились и я потихоньку начинаю заниматься поисками работы, параллельно заканчивая курс hexlet, в нем уже остались более прикладные вещи (реализация http server, микрофреймворк js express и др.). Так же еще будет 4 проект, что то вроде дипломного, стартует 6 марта и на этот раз будет длится 2 недели, но он будет состоять из 1 шага, скорее всего это будет чисто прикладной проект, но вероятнее всего будет работа с БД, что очень радует.

Share
Send
2017   hexlet   it   programming   study
Your comment
won’t be published

HTML will not work

Ctrl + Enter