2009-05-03 14 views
6

Ich würde gerne ein leichteres Framework als Rails verwenden (Sinatra/Ramaze/Camping), bin aber besorgt, dass ich dadurch nicht viele gemeinsam genutzte Bibliotheken verwenden kann, die auf Rails in Form von Plugins zugeschnitten sind. Ist das ein großes Problem oder sind die meisten dieser Plugins in verschiedenen Ruby-Frameworks verwendbar?Gibt es mögliche Nachteile bei der Verwendung eines anderen Ruby-Frameworks als Rails?

Gibt es andere mögliche Nachteile bei der Verwendung eines anderen Ruby-Frameworks als Rails?

Antwort

9

Sie können immer noch gems in allen Frameworks verwenden Sie erwähnt haben, so dass eine Tonne Material wiederverwendbar ist. Willst du ein neues ORM tauschen, keine Probleme. Willst du eine ausgefallene Shmacy Syntax Hervorhebung, keine Probleme. Rails hat einen großen Schritt gemacht, um vom alten Plugin-Modell wegzukommen, um ausschließlich Edelsteine ​​zu verwenden.

Wenn eines der anderen Frameworks Ihren Anforderungen entspricht, verwenden Sie es besser. Denken Sie daran, dass Schienen, wenn es um Dokumentation und Proben geht, mehr hat.

Wenn ich lerne, Ruby und wollte würde ich wahrscheinlich mit Rails gehen, um einen Web-Framework auszuprobieren nicht, weil es besser, sondern weil sein viel besser Werkzeuge und Dokumentation einsehen.

+0

+1 Viele Schienen Plugins können auch als Edelsteine ​​mit fast keinem Aufwand umgestaltet werden. Sie wurden als Plugins veröffentlicht, nur weil das für den ursprünglichen Autor praktisch war. –

1

Die meisten von Rails verwendeten Ruby-Module (auch ActiveRecord) können ohne Rails verwendet werden. Aber dann verlieren Sie den zusätzlichen Vorteil der Integration von Rails. Möglicherweise müssen Sie besonders hart arbeiten, um Ruby-Module an das Framework Ihrer Wahl zu kleben. Bitte beachten Sie auch, dass die meiste Dokumentation über Ruby-Module, die von Rails verwendet wird, Ihnen nur erklärt, wie Sie dieses Modul mit Rails verwenden.

0

Ich glaube, dass kein Rails-Plugin mit jedem der alternativen Frameworks funktionieren wird, außer ActiveRecord-Plugins (wie acts_as_nested_set usw.), die noch einige Klempnerarbeiten benötigen (Einstellung $ LOAD_PATH und erfordern richtige Dateien). Ich würde empfehlen DataMapper für ORM, nicht nur es ist viel schneller als ActiveRecord, aber es ist auch sehr modular aufgebaut und Plugins sind echte Edelsteine, die Sie leicht installieren können. Im Unterschied dazu sind ActiveRecord-Plugins meistens Affe-Patches, die mit jeder neuen Version brechen.

Sinatra kommt nicht mit irgendwelchen "Goodies", keine Rakefiles, keine Skelette, kein Script/Generate, aber dafür wurde es geschrieben. Du kannst all die zusätzlichen Sachen nach und nach "einlochen". Es gibt auch skeletons für Sinatra-Apps, die mit einigen grundlegenden Layout und Standardeinstellungen kommen, können Sie diese nützlich finden.

1

Ein Problem, das aufkommt, wenn Sie andere Frameworks wie sinatra, Camping, etc ist, dass Schienen gibt Ihnen eine bewährte Struktur für Ihre Dateien in der Anwendung. Kleinere Frameworks sind ziemlich offen und frei.

Dies kann ein Nachteil sein, wenn Sie mit mehreren Entwicklern arbeiten, wie Sie Gespräche über das Erstellen von Konventionen müssen vielmehr sie dann einfach nach.

1

Wenn Sie schon für weniger als ein Jahr Rubin wurde verwenden, halten Sie sich an Rails, wenn Sie einen sehr klaren Bedarf haben, die besser von einem der anderen Frameworks behandelt wird.

Die leichteren Frameworks, vor allem Sinatra, neigen dazu, bei Leuten beliebt zu sein, die genau wissen, was sie brauchen und sich keinen zusätzlichen Overhead aus ungenutztem Code leisten können. Im Wesentlichen wählen Sie Ihre Toolchain, anstatt im Allgemeinen bei dem zu bleiben, was Rails Ihnen gibt. (Ja, in Rails können Sie ActiveRecord und andere Bibliotheken ersetzen, aber es ist nicht gerade einfach.) Die helleren Frameworks geben Ihnen also wesentlich mehr Freiheit, aber Sie haben in vielen Fällen auch noch einiges zu tun.