Современный JavaScript для Древних Веб Разработчиков

Есть своего рода олдскульный бэкэнд-веб-разработчик, который давно освоил такие вещи, как Perl или Python или PHP или Java, возможно, даже Rails или Django. Этот человек работал с гигантскими реляционными базами данных и встроенными API-интерфейсами, которые обслуживают JSON и даже XML.

 Этот человек является бэкэнд-разработчиком, поэтому в течение долгого времени JavaScript был просто забавной игрушкой, которая добавила немного внешнего обмана, который мог заставить вещи на веб-странице менять цвет. Если бы JavaScript был действительно полезным, он добавил бы проверку формы, которая помогла бы предотвратить попадание неверной информации в базу данных. Восемь лет назад jQuery взорвал разум этого человека. Сам JavaScript был языком, к которому относились нейтрально.

 И вот настало время вновь стать веб-разработчиком в 2017 году, который пишет JavaScript.

 Здравствуй. Я - древний веб-разработчик, который изучает современный JavaScript. Я только что начал. Есть несколько вещей, которые я хотел бы понять и изучить о мире современного JavaScript, прежде чем начать.

 Вот некоторые из изменений, которые я должен был внести в свое собственное мышление и ожидания относительно изучения новой экосистемы, основанной на старом языке, который когда-то был моим ремеслом.

Движущаяся цель (пункт JS)

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

Новые проблемы. Еще не принятые решения

Когда вы изучаете современный JavaScript, есть шанс, что решение проблемы, с которой вы столкнулись, уже выработано. На самом деле, вполне возможно, что только один обзор кода не будет объединен с используемым пакетом.

Когда вы работаете с древним языком, таким как PHP, вы задаете вопрос или проблему Google, и почти в 100% случаев вы найдете 5-летний ответ, который его решает, или полное обсуждение с большим количеством комментариев и беспрецедентной документацией.

 Перегрузка инструментами

 Еще одна трудная вещь, связанная с обучением JavaScript в 2017 году: обучение будет выглядеть так, как будто вы создаете приложение. Огромное количество инструментов и плагинов, а также пакетов и зависимостей, а также настроек, необходимых для того, чтобы сделать это «правильным способом», достаточно, чтобы остановить вас до того, как вы начнете.

 Не позволяйте этому останавливать вас. Мне пришлось отказаться от этого «Правильного пути» с самого начала, и я позволил себе переборщить с использованием субоптимальных или просто любительских настроек только для того, чтобы освоиться с отдельными инструментами.

 В мире JS предстоит большая работа. Опять же, область современного JavaScript - постоянно движущаяся цель.

Изучайте / Создавайте / Положите в сторону / Повторите

 Когда вы изучаете какой-либо новый язык, вы пишете код, а затем оставляете его, а затем вы пишете еще. Мое современное обучение JavaScript было шагом на пути к учебникам, а затем - небольшой уступчивый проект, в ходе которого я составил список вопросов и проблем, затем общался с моими коллегами, чтобы получить ответы и объяснения, затем читал еще больше учебников, а затем взялся за немного больший проект, последовало больше вопросов - и все заново.

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

  •  HOW-TO-NPM — Npm - менеджер пакетов для JavaScript. Несмотря на то, что я тысячи раз вводил npm, прежде чем начал этот процесс, я не знал всех вещей, которые делает npm, пока я не прошел этот интерактивный семинар.

  •  Learnyounode — Сначала я решил сосредоточиться на серверном JavaScript, потому что там мне комфортно, поэтому это Node.js. Learnyounode - это интерактивное введение в Node.js, аналогичное по структуре npm.

  •  expressworks — Подобно двум предыдущим семинарам, Expressworks представляет собой введение в Express.js, веб-фреймворк для Node.js.

  •  Теперь пришло время строить что-то реальное. Я нашел учебник Томоми Имуры по созданию Slack Command Bot от Scratch с Node.js, и мне было всего достаточно Node и Express, чтобы работать с моими новообретенными навыками. Поскольку я фокусировался на бэкэнде, создание слэш-команды для Slack было хорошим местом для начала, потому что нет фронтэнда (Slack делает это за вас).

  •  В процессе создания этой команды вместо использования ngrok или Heroku, как рекомендовано в пошаговом руководстве, я экспериментировал с Zeit Now, который является бесценным инструментом для тех, кто строит быстрые одноразовые приложения JS.

  •  Установка Sublime плагинов, правильная настройка версий узлов, настройка ESLint с помощью руководства стилей Airbnb (предпочтение Postlight) - все это замедлило меня, но также стоило первоначальных инвестиций. Я все еще в гуще этого. Например, Webpack по-прежнему довольно загадочен для меня, но это видео - отличное введение.

  •  В какой-то момент асинхронное выполнение JS (в частности, «адский ад») начало выводить меня. Promise It Will Not Hurt - это еще один семинар, который учит, как писать «чистый» асинхронный код, используя относительно новую абстракцию JS для работы с асинхронным исполнением. Благодаря Марико Косака, теперь я думаю о них всякий раз, когда заказываю гамбургер.

 Отсюда я понял, что могу ввязаться во всевозможные неприятности, такие как эксперимент с Jest для тестирования, Botkit для более активного Slot-бота, и Serverless для того, чтобы действительно забить главную ценность функционального программирования. Если вы не знаете, что это значит, это нормально. Это большой мир, и мы все проходим по нему собственными путями.

 «Сначала сделайте это, затем делайте все правильно, а затем сделайте это лучше».

Если у вас появились какие-либо вопросы, обращайтесь к нам! Помогут не только ответить на все интересующие вас вопросы, но и стать успешных специалистом в данной сфере помогут курсы JavaScript. Ждем Вас (: