Изучение обширной экосистемы современного JavaScript представляет собой непростую задачу. Она состоит из широкого спектра фронтенд-фреймворков, нескольких сборщиков модулей, тысяч библиотек утилит, а также модулей Node.js, работающих как на компьютере, так и на сервере. С чего стоит начать? Каким темам стоит уделить время?
Рассмотрим пять рекомендаций по изучению JavaScript.
Если заглянуть в историю JavaScript (или веб-разработки в целом), то можно обнаружить, что асинхронный JavaScript полностью изменил ход событий. С его помощью веб-сайты перешли от статических страниц с действиями только на стороне клиента к полнофункциональным приложениям в браузере. Возможность сделать HTTP-запрос и ждать ответа без перезагрузки страницы перевернула всемирную паутину.
Можно с уверенностью сказать, что асинхронное программирование является основным принципом веб-разработки. Именно этой теме стоит уделить больше времени на ранней стадии изучения JavaScript, поскольку она включает в себя такие принципы разработки, как обратные вызовы, промисы, конструкцию async/await, а также метод fetch.
Эта рекомендация скорее относится к освоению лучших практик программирования. JavaScript — это слабо типизированный динамический язык программирования. При необходимости передать переменные и объекты данных, у которых отсутствуют контракты типов и неизменность, написание уязвимого к побочному воздействию кода не составляет труда. В TypeScript эти проблемы устранены благодаря сильной типизации и возможности создавать свойства readonly.
Обратите внимание на такие темы, как добавление аннотации типов к переменным, свойствам классов, аргументам функций и возвращаемым значениям функций.
Также стоит уделить время рассмотрению сообщений об ошибках от TypeScript. Это поможет значительно улучшить код.
Рекомендуемые ресурсы:
Фреймворки JavaScript существуют с далекого 2012 года. В то время AngularJS занимал главенствующую позицию, Backbone.js обладал приличной долей рынка, а Ember был подающим надежды новичком. Однако, несмотря на то, что эти фреймворки ушли в прошлое (их заменили React и Vue), проблемы, связанные с ними, сохранили актуальность. Например:
Инструменты меняются, а технологии развиваются, однако понимание основных болевых точек веб-разработки (причин, по которым были разработаны инструменты), поможет разобраться в том, как правильно использовать любой фреймворк.
Поскольку основные проблемы, которые решают фреймворки, остаются актуальными до сих пор, рекомендуется изучать два фронтенд-фреймворка одновременно (например, Vue и React).
При использовании одного фреймворка можно заметить, что его синтаксис и шаблоны являются частью лежащего в основе языка (в данном случае JavaScript). Как говорится, если у вас есть молоток, то все предметы вокруг кажутся гвоздями. С точки зрения программирования это высказывание означает, что при использовании только одного фреймворка принятие решений будет зависеть исключительно от него. В конечном счете он станет костылем, а не источником силы.
Знание двух фреймворков одновременно перевернет этот образ мышления и предоставит более глубокое представление о работе фреймворка. Этот процесс можно сравнить с улучшением знания родного языка при изучении иностранного. Сходства и различия двух языков заставляют задуматься о том, какие лингвистические явления привели к возникновению этих сходств и различий. При знании двух фреймворков JavaScript получается похожий эффект, поскольку знание двух путей к одному решению помогает лучше разобраться в ключевых проблемах.
Написание современного JavaScript требует большого количества инструментов и фреймворков, и единственное, что связывает их вместе, — это процесс сборки.
Инструменты сборки постоянно меняются, увеличивая производительность и размеры ассетов. Веб-компании и open-source сообщество разработчиков регулярно вносят усовершенствования в процесс сборки, что приводит к постоянному изменению набора инструментов и процессов.
Инструменты сборки стремятся к нулевой или очень маленькой конфигурации, что очень даже хорошо при начале работы с ними. Однако при необходимости внести пользовательские конфигурации ситуация сильно усложняется.
Понимание работы инструментов играет большую роль. Постарайтесь разобраться в порядке преобразования кода и в сборке модулей, чтобы максимально оптимизировать их. Изучите все параметры конфигурации, так как они влияют на производительность и размер файла.
Вот и все! Как уже было сказано, экосистема JavaScript достигает огромных размеров и сложна для изучения. Однако, сосредоточившись на этих пяти советах, вы пойдете по правильному пути.
Перевод статьи
Комментарии