Использование Rails в качестве основы для большого сайта - PullRequest
3 голосов
/ 28 мая 2011

Я играю с Rails (версия 3) уже несколько месяцев, и я достаточно хорошо понимаю фреймворк. Однако мне еще предстоит разработать большой веб-сайт, который предлагает большой доступ к базе данных и взаимодействие с пользователем.

Я довольно скептически отношусь к следующему:

  • Скорость и масштабируемость Ruby (я слышал, что он в 10 раз медленнее, чем большинство других серверных языков).
  • Дополнительная фоновая обработка, которую Rails использует как структуру (несколько уровней абстракции).
  • Отсутствие веб-приложений корпоративного уровня, работающих на Rails (единственные, которые я могу вспомнить о Groupon, Github и Hulu).
  • Сложность среды (nginx> mongrel> rails> ruby> website).
  • Закулисные операции SQL (я знаю, что их можно оптимизировать, но я уверен, что некоторые из них будут отсутствовать).

По этим причинам я не уверен, продолжать ли использовать Rails или переключиться на что-то, что построено на более производительном языке ... скажем, Java Spring.

Пожалуйста, сообщите:)

Ответы [ 3 ]

12 голосов
/ 28 мая 2011

Существует тонн крупных объектов и инфраструктур, которые используют Rails .Этот вопрос также задавался до смерти на протяжении многих лет, когда Rails активно использовался для всех видов веб-приложений, больших и малых.

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

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

10 голосов
/ 28 мая 2011

Вы можете получить хорошую производительность с Ruby. Легко:

require 'inline'

inline :C do |builder|
  builder.c <<-C_CODE

  void run() {
    // Write your entire application in C here
  }

  C_CODE
end

run

Проблема решена;)

8 голосов
/ 28 мая 2011

Не скорость и масштабирование снова?

В веб-разработках самое медленное - это сетевое взаимодействие (получение запроса, получение всех ваших данных), база данных (получение всех ваших данных из базы данных), и в большинстве случаев это не так.вообще о времени вычислений.

Хотя это правда, что Ruby и Ruby on Rails кажутся более ориентированными на счастье программиста, я думаю, что каждое достойное веб-приложение, построенное в .NET или Java, имеет столько уровней абстракции,

Сложность окружающей среды?Я думаю, что вы имеете в виду развертывание?Вариантов много, но чаще всего используются Passenger (очень простое развертывание поверх apache или nginx) или Torquebox .Torquebox на данный момент является самым быстрым и лучшим решением для масштабирования (на основе сервера приложений JBoss), и несколько громких имен в сообществе Ruby называют Jruby реализацией выбора для развертывания ваших приложений.В то время как AFAIK самое распространенное развертывание все еще использует REE (Ruby Enterprise Edition) и Passenger.

Если вы не знаете , вам придется выполнять серьезные математические, интенсивные операции, я думаю,Вопрос, который вы должны задать себе: какой фреймворк / язык даст мне самый быстрый результат?

Если вы очень хорошо разбираетесь в Java / Spring, это может быть ответом для вас.Но если ваше единственное беспокойство вызывает производительность в целом, я бы сказал: не стесняйтесь и переходите на Ruby on Rails.Развиваться в этом - чистая радость. Сообщество ruby ​​действительно здорово, если вы столкнетесь с какими-либо проблемами: поддержка - это просто сообщение.

И в заключение я хочу добавить несколько очень больших сайтов, использующих Rails: LinkedIn использует rails (и jruby), а Twitter по-прежнему использует Rails для своего внешнего интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...