Есть ли потенциальные недостатки в использовании среды Ruby, кроме Rails?

StackOverflow https://stackoverflow.com/questions/816576

Вопрос

Я хотел бы использовать более легкую среду, чем Rails (Sinatra / Ramaze / Camping), но обеспокоен тем, что при этом я не смогу использовать много общих библиотек, которые были адаптированы для Rails в форме плагинов , Это серьезная проблема, или большинство этих плагинов можно использовать в разных средах Ruby?

Есть ли другие потенциальные недостатки в использовании среды Ruby, кроме Rails?

Это было полезно?

Решение

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

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

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

Другие советы

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

Сетевые эффекты играют определенную роль.

Одна проблема, которая возникает при использовании других сред, таких как sinatra, кемпинг и т. д., заключается в том, что rails дает вам проверенную структуру для ваших файлов в приложении. Меньшие рамки довольно открыты и бесплатны.

Это может быть недостатком, когда вы работаете с несколькими разработчиками, поскольку вам нужно поговорить о создании соглашений, а не просто следовать им.

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

Более легкие фреймворки, прежде всего Sinatra, имеют тенденцию быть популярными среди людей, которые точно знают, что им понадобится, и не могут позволить себе никаких дополнительных затрат из-за неиспользуемого кода. По сути, вы выбираете свою цепочку инструментов, а не зацикливаетесь на том, что дает вам Rails. (Да, в Rails вы можете заменить ActiveRecord и др. Другими библиотеками, но это не совсем просто.) Таким образом, более легкие фреймворки дают вам значительно больше свободы, но во многих случаях у вас также есть немного больше работы.

Я думаю, что никакой плагин rails не будет работать "из коробки" с любой из альтернативных платформ, за исключением плагинов ActiveRecord (таких как activ_as_nested_set и т. д.), которые все еще будут нуждаться в некоторой сантехнической работе (установка $ LOAD_PATH и требующая права файлы). Я бы порекомендовал DataMapper для ORM, не только он намного быстрее, чем ActiveRecord, но и очень модульно построен а плагины - это настоящие жемчужины, которые вы можете легко установить. В отличие от этого плагины ActiveRecord - это в основном обезьяны-патчи, которые обычно ломаются с каждой новой версией.

Sinatra не поставляется ни с какими «вкусностями», ни с Rake-файлами, ни со скелетами, ни с сценарием / генерацией, но на самом деле это то, для чего он был написан. Вы можете постепенно "погрузиться в" все лишние вещи. Также есть скелеты для приложений sinatra, которые имеют базовую компоновку и настройки по умолчанию, Вы можете найти это полезным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top