Что вы не можете сделать в Rails, что вы можете сделать в другой среде? - PullRequest
1 голос
/ 02 февраля 2009

Я хотел бы знать ситуации, в которых мне следует рассмотреть возможность использования инфраструктуры, отличной от Rails.

Ответы [ 4 ]

2 голосов
/ 02 февраля 2009

edit: Matt со вкусом исправил свой ответ :) Я удалил свои собственные комментарии, указывающие на вещи, которые он исправил.

Да, у Руби определенно есть некоторые недостатки. Зелёные нити - огромные. Но, как сказал Мэтт, дела идут в лучшем направлении.

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

Вот отличный (и я мог бы добавить объективный) пример, где не для использования рельсов: Ограничивает ли Rails ORM возможность выполнять агрегацию?

2 голосов
/ 02 февраля 2009

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

2 голосов
/ 02 февраля 2009

Две вещи. Во-первых, Ruby является относительно молодым языком, и вы можете столкнуться с кирпичными стенами при попытке сделать немного более эзотерические вещи (например, подключиться к неосновным или более старым типам источников данных). Он также имеет плохой сборщик мусора и не содержит потоков ядра, что очень важно для высокопроизводительной платформы. Основная кодовая база (MRI) довольно хакерская (много хитрых запутывающих трюков программиста, таких как макросы), и есть части, которые плохо написаны (gc и планирование потоков прыгают в голову). Опять же, это очень молодая платформа, которая очень быстро стала очень популярной.

Во-вторых, хотя язык ruby ​​и рельсы, идеи / парадигмы феноменальны, а ruby ​​и rails - нет, платформы - нет. Как в ruby, так и в rails есть чертовски много уродов, а решения по развертыванию находятся в темноте по сравнению с тем, что считается нормальным для других платформ (php / asp / jsp).

Меня обвиняют в троллинге, поэтому я немного поясню. Из-за поточной модели Rails не может обрабатывать запросы одновременно, если вы не запустите несколько полных экземпляров своего приложения rails. Для этого у вас есть два варианта: относительно молодой и все еще находящийся в разработке пассажир (mod_rails) или испытанный и протестированный балансировщик нагрузки Apache с несколькими экземплярами Mongrel за ним.

В любом случае отсутствие возможности просто порождать рабочих означает, что вам потребуется 5-10 полных экземпляров вашего приложения, что влечет за собой очень большие накладные расходы (может легко составить 300-500 мг на приложение в зависимости от ваших драгоценных камней и насколько велико ваше приложение). Из-за этого инфраструктура, необходимая для обслуживания рельсов, чертовски много более сложна, чем большинство других вещей.

Теперь, как говорится, ситуация постоянно улучшается (я имею в виду, что пассажиром можно пользоваться сейчас, это был не последний раз, когда мне приходилось иметь дело с развертыванием приложения rails). Я был бы очень удивлен, если бы рельсы не наверстали в ближайшие несколько лет.

Кроме того, Рубиниус / Джруби делают все правильно и продвигаются с большой скоростью. Я не удивлюсь, если в ближайшие несколько лет МРТ упадет в пользу одной из этих реализаций для основной рельсовой работы.

1 голос
/ 02 февраля 2009

Ух ты, способ начать огненную войну!

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

Пусть оскорбления летят!

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