Подтвердить что ты не робот

Разъяснения о Rails и Node.js

До сих пор я всегда использовал PHP с фреймворком или без него, но месяц назад я решил начать что-то новое: Ruby и Rails, я нашел их довольно простыми и похожими на PHP и некоторые фреймворки PHP в том, как они работают, но используя более простой синтаксис и многие другие преимущества.

Несколько дней назад я начал читать о Node.js, Node.js vs Rails, "почему Node.js лучше"...

Я немного смущен, но моя цель - узнать что-то современное, которое не устареет через несколько месяцев, поэтому:

Каковы основные различия между Rails/Ruby и Node.js и фреймворком, основанным на нем, например Express.js(за исключением того, что он написан в JS, а другой в Ruby)?

Каковы основные преимущества/недостатки использования Node.js и рамки на его основе вместо решения на основе Ruby, такого как Rails?

Спасибо!

4b9b3361

Ответ 1

Недостаточно различий между Node.js и Rails для этого практически.

Многое из того, что может сделать Node.js, может быть снято в Rails с такими вещами, как EventMachine и Pusher. Поэтому, если вы действительно не знакомы с ограничениями Rails и знаете, что вы будете продвигать границы, вам будет трудно сделать что-то, что не мог сделать опытный разработчик Rails.

Создав приложения в Node и Express, я могу сказать, что их одного недостаточно, чтобы сделать сексуальное приложение. Они могут казаться такими же старыми и устаревшими, если у вас нет выдающегося интерфейса интерфейса для облегчения бэкэнд-возможностей. Вместо сравнения серверных серверов, я думаю, что реальное будущее потрясающих вещей находится в интерфейсных инфраструктурах JavaScript, таких как Backbone.js, которые используют Express/Rails/ Node. js на сервере.

Я решил пойти в сторону Backbone.js с Rails в качестве моего сервера API бэкэнд. Потому что так легко быстро создать очень хороший серверный сервер RESTful в Rails. Rails также позволяет работать с CoffeeScript и предварительно скомпилировать/организовывать базовый код как легкий ветерок. Есть уже приличные камни Backbone.js для Rails.

Ядро Rails также может признать и принять тот факт, что интерфейсные JS MVC логически являются хорошим следующим шагом, и они работают над укреплением связи между ними. По тем же причинам они также работали над тем, чтобы Rails стал еще лучше API-сервером, чтобы он мог работать с интерфейсом JS проще. Node.js и Express не прикладывают столько усилий для координации с MVC-интерфейсом JavaScript-MVC, поскольку сообщество Rails.

Будучи хорошим с интерфейсом JavaScript MVC и Rails в качестве бэкэнда, вы также отлично справляетесь с обоими мирами с точки зрения получения работы. Вы легко сможете перейти на проект Node.js и добавить к этой команде значение с превосходным опытом работы с фронтэндом, а также сможете выполнять броски в команде Ruby on Rails и добавлять к ним ценность.

Ответ 2

Как официальный Node.js сайт объясняет это:

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

С другой стороны Официальный сайт Ruby on Rails:

Ruby on Rails - это веб-инфраструктура с открытым исходным кодом, которая оптимизирована для счастья программистов и обеспечения устойчивой производительности. Это позволяет писать красивый код, предпочитая соглашение по конфигурации.

Учитывая это, я считаю, что более уместно сравнивать Ruby и Node.js, но даже это не совсем правильно, учитывая, что Ruby является языком программирования, а Node.js НЕ. Возможно, вы могли бы сравнить JavaScript с Ruby, но я думаю, это не то, что вы хотели задать с этим вопросом:)

Итак, для меня ключевой момент в понимании того, что действительно пытается выполнить Node.js, хорошо описано на странице Node.js о странице. Ключевая идея Node.js(для меня) описана в этих предложениях:

Node похож по дизайну и зависит от таких систем, как Ruby Event Machine или Python Twisted. Node принимает модель события немного дальше - она ​​представляет цикл событий как конструкцию языка, а не как библиотеку. В других системах всегда есть блокирующий вызов для запуска цикла события. Обычно определяется поведение через обратные вызовы в начале script и в конце запускает сервер через блокирующий вызов, например EventMachine:: run(). В Node нет такого вызова цикла start-the-event-loop. Node просто входит в цикл событий после выполнения ввода script. Node завершает цикл событий, когда больше не нужно выполнять обратные вызовы. Это похоже на браузер javascript - цикл событий скрыт от пользователя.

Что должно вам помочь, так это то, что вы должны легко писать высококонкурентные программы, даже не думая о concurrency, используя синтаксис JavaScript и функции обратного вызова в качестве основных параллельных исполняемых блоков.

Ответ 3

Ваш страх перед тем, что либо Rails, либо Node.js исчезнет через неделю, будет необоснованным. Rails имеет большое сообщество и будет находиться в течение очень долгого времени, хотя в настоящее время (в начале 2012 года) он получает немного ненависти. Node.js только начинается, и у меня так много внимания. Я не думаю, что когда-нибудь у него возникнут проблемы с получением уровня Rails.

Это говорит, что я оценивал Node.js и Rails как параметры для проекта, а причины, по которым я выбираю Node.js over Rails:

  • "Rails Way". В моем (по общему признанию, ограниченном) опыте с Rails действительно кажется, что вы либо делаете это Rails, либо находитесь в мире боли. Большая часть пути Rails - использовать модель ActiveRecord. Преимущество этого в том, что есть много драгоценных камней, которые работают с вашим кодом счастливо, потому что они знают, что вы будете использовать ActiveRecord. Недостатком является то, что вы смешиваете доступ к данным и модель. Я не поклонник этой идеи, поэтому Rails для меня все еще кажется немного.. off.

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

  • В моем проекте есть потребности в общении в режиме реального времени, которые, хотя я уверен, что это можно сделать в Rails, кажется, есть немного положительное упоминание о способности Nodes справиться с этим, поскольку socket.io является опцией переднего бегуна.

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

В любом случае.. Удачи!

Ответ 4

2 вещи - производительность и производительность.

Производительность (подробнее здесь)

http://jslang.info/blog/2014/ruby-on-rails-vs-nodejs/ror-vs-node.png

Производительность (как быстро вы можете создать это приложение)

Ruby on Rails - это специализированный и высокопроизводительный инструмент для создания так называемых приложений Web 1.0 и Web 2.0 (99% интернет-сайтов - это такие приложения). В моем субъективном суждении и опыте в этой области Rails о в 2-4 раза более продуктивном, чем node.js или express.js.

Для приложений Web 3.0 (в реальном времени, MVC на стороне клиента и т.д.) это неверно, RoR не сохраняет там своего преимущества.

Выбор зависит от варианта использования и приоритетов.

Ответ 5

Я знаю намного больше о Node.js, чем о Ruby. Говоря об этом, Ruby гораздо более широко принят. В настоящее время очень жарко умение работать на рабочем месте. Некоторые могут спорить со мной об этом, но я думаю, что Node.js все еще находится в стадии разработки и будет немного дольше. Он имеет много обещаний, но не был принят многими компаниями и проектами.