Недавно мне исполнилось 2 года с того дня, как я купил свою первую книгу по HTML/CSS (01.07.14). Одно слово о моем прогрессе с тех пор: Вау.
Где я сейчас?
Хотя это путешествие привело меня к моей первой и самой настоящей любви, Ruby on Rails, я решил расширить свои навыки в дебрях JavaScript.
Признаюсь, до сих пор я относился к JavaScript как к тому придурку, которого терплю только потому, что он дружит со всеми моими друзьями. Однако, поддавшись неизбежному, я решил преодолеть разрыв. И знаешь, что? JavaScript — довольно крутой парень.
Node.js
Для справки: до конца этого поста, если не указано иное, когда я говорю о JavaScript, я имею в виду Node.js, а не ванильный JS в браузере.
Так что же такое Node.js? Это вопрос десятилетия, и моя неспособность понять каждое определение, с которым я сталкивался, вероятно, замедлила мой прогресс в использовании Node. Вот мое личное определение, которое помогло мне понять:
Node позволяет вам делать с ним все, что вы хотите — программировать роботов, создавать настольные приложения, организовывать файловые системы и, конечно же, веб-разработку.
Мышление Node.js
Мое знакомство с разработкой Node произошло на моей местной встрече Nodeschool. Когда я проходил пошаговые инструкции модуля learningyounode, я думал, что активно делаю веб-сайт. Внимание, спойлер, я не был.
Приходя из Ruby on Rails, я ожидал, что веб-приложение будет запущено после написания нескольких строк кода. В чем я ошибался: Rails — полнофункциональный фреймворк. Node — это просто среда для написания кода. Node.js больше похож на Ruby, чем на Ruby on Rails. Итак, чему я научился в Nodeschool?Библиотеки.
Мое восприятие разработки было искаженным, потому что я сначала изучил Ruby on Rails. Rails поставляется с основными веб-требованиями — моделированием данных, обработкой данных, маршрутизацией, тестированием (теперь веб-сокеты!) и т. д. — встроенными.Node требует, чтобы разработчик построил эту основу.
Приложения Node создаются путем добавления библиотеки к библиотеке за библиотекой до тех пор, пока приложение не будет обладать всеми необходимыми функциями. Таким образом, библиотеки (или пакеты) очень похожи на драгоценные камни Ruby.
Ruby on Rails — это Мистер Картофельная Голова. Веб-разработка Node.js — это Lego.
Существует множество пакетов Node для любой функции, которую вы хотели бы добавить в свое приложение (так же, как Ruby Gems). Основное отличие состоит в том, что разработчик также должен собрать ядро приложения, хотя при желании доступны такие фреймворки, как Ember.js и Meteor.
Лично я нахожу сборку бэкенда приложения по кусочкам проницательным, и это помогло мне понять и оценить возможности, предоставляемые Rails. По крайней мере, это дает мне словарь для поиска того, как настроить основной код Rails в соответствии с моими потребностями.
Мышление Node.js: веб-приложения по одному блоку за раз
Куда я иду?
Так вот я стою. 2 года в веб-разработке, 6 (не подряд) месяцев в JavaScript, и я, возможно, только начинаю понимать, что я пытаюсь сделать. Надеюсь, это были только те 20% времени, которые я потратил на изучение 80% информации, но что-то подсказывает мне, что мне еще предстоит выучить более 20%.
Итак, вернемся к точильному камню JavaScript.
Удачного кодирования.