Недавно мне исполнилось 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.

Удачного кодирования.