Javascript — сложный язык, большинство компаний/веб-сайтов/блогов попросят вас просто изучить достаточно JS, чтобы создать функциональность веб-сайта. Но так ли это? Ваш код легко читается, понимается и, самое главное, легко расширяется для других разработчиков, является ли он масштабируемым?

Чтобы ответить на вышеизложенное, вам важно освоить Javascript и понять, что можно и чего нельзя делать с языком, когда вы пишете код для своих веб-приложений.

Прежде чем мы начнем рассматривать темы, я хотел бы привести известную цитату о Javascript:

Не смотрите на Javascript как на инструмент, смотрите на него как на язык.

Это означает, что нужно углубиться в Javascript, заглянуть под капот, посмотреть на различные концепции языка.

Некоторые важные концепции языка, которые вы должны освоить:

  1. Циклы событий,
  2. Расписание и очередь
  3. Управление памятью
  4. Записи активации
  5. функциональные объекты
  6. Вложение объектов
  7. Закрытия
  8. Как работают асинхронные слушатели
  9. Обходы DOM
  10. ЕС 6/7/8 и т.д.

Это первая часть изучения важных понятий. Теперь изучите шаблоны проектирования, все отличные веб-сайты используют какой-либо шаблон проектирования, следующие шаблоны проектирования жизненно важны для любого разработчика Javascript:

  1. Креативные шаблоны проектирования: Фабрика, Абстракция, Прототип и Синглтон.
  2. Шаблоны структурного проектирования: декоратор, легковес и прокси.
  3. Шаблоны поведенческого проектирования: итератор, наблюдатель, состояние, посетитель.
  4. Шаблоны архитектурного проектирования: MVC, MVP, MVVM (основы почти всех фреймворков).

Попробуйте создать простой MVC для Javascript, для этого есть много ссылок в Google.

После того, как вы достигнете этого, изучите фреймворки, их приложения и варианты использования, а когда закончите с этим, загляните под капот этих фреймворков и посмотрите, как они работают. Например, двусторонняя привязка данных в компонентах Angular, Flux, React и Shadow DOM в реагировать и т.

В конце концов, хороший разработчик JS не будет измеряться количеством фреймворков, которые он знает, он всегда будет сводиться к освоению основ, их применению и пониманию.