19 Stimmen

Ist Rails eine Black Box?

Ich habe in letzter Zeit einige einfache Rails-Apps entwickelt. Ich weiß, Ruby ziemlich gut, aber wenn ich begann, Dinge zu tun "die Rails Weg" Ich bemerkte, dass einige Dinge getan wurden "nur weil" und es ist schwer für einen (Rails) Neuling zu wissen, was tut der Code tun.

Hat die Schiene ihren Sinn verfehlt und ist zu einer Art Sprache der vierten Generation geworden? Ich meine, man MUSS einige Dinge tun (die man nicht verstehen muss), um Rails-Websites zu entwickeln, und die Alternative ist, den Quellcode zu erforschen, um herauszufinden, was was tut.

Ich habe auch gesehen, dass die Leute jedem, der gute Rails-Tutorials machen konnte, Geld gezahlt haben... Wir sprechen über ein Framework, das die Einfachheit an die erste Stelle setzt, ist es notwendig, für gute Tutorials zu bezahlen?

Verstehen Sie mich nicht falsch, ich glaube, dass Rails sehr gute Ideen in den Mainstream gebracht hat (wie Konvention über Konfiguration), aber hat diese übermäßige Vereinfachung ("fügen Sie einfach diese Codezeile ein und ... es funktioniert!") die Einfachheit reduziert, die das Framework zu erreichen versuchte?

23voto

Bryan M. Punkte 16864

Ich denke, es ist eine Frage der Perspektive. Aus einer breiten Perspektive hat die Rails-Gemeinschaft das Framework als etwas hochgehalten, das est so einfach. Aber die Wahrheit ist, dass es nicht so ist. Je mehr ich mit Rails arbeite, desto weniger bin ich ein Fanboy. Ich glaube nicht, dass das die Schuld von Rails ist, aber ich denke, dass viele Leute den Eindruck gewonnen haben, dass das Schreiben einer Rails-Anwendung so etwas wie ein Zauberstab ist (und ich selbst habe von diesem Kool-Aid getrunken).

Rails hält jedoch viele Versprechen, da es viele Funktionen bietet, die wenig bis gar keine Konfiguration erfordern. Dinge wie ORM, Modellbeziehungen und Validierung sind trivial einzurichten und lassen viel mehr Zeit für Dinge wie die Feinabstimmung der Anwendungslogik und die Konzentration auf das Design. Der Code von Rails lässt sich außerdem sehr leicht umgestalten. Mit Rails kann man mit wenig Code viel erreichen.

Frustrierend wird es, wenn ich abseits der ausgetretenen Pfade gehen will. Ich möchte vielleicht eine "ganz bestimmte Funktionalität X" erreichen, aber ich weiß nicht, wo ich anfangen soll. Je tiefer ich in das Framework einsteige, desto spärlicher werden die Informationen. Teile der API sind völlig unterdokumentiert. Dadurch bin ich gezwungen, mich auf Plugins von Drittanbietern zu verlassen, von denen einige keine Dokumentation haben und nicht gut gepflegt werden. Ich bin ziemlich auf einen Blogbeitrag angewiesen, der mir sagt, ich solle diesen oder jenen Code in meine Anwendung kopieren, und die Dinge werden einfach funktionieren (zum Glück tun sie das meistens).

Einige meiner Probleme könnten mit meiner allgemeinen Unerfahrenheit zusammenhängen (ich mache immer noch den Übergang vom Designer zum Programmierer), aber ich habe oft das Gefühl, dass Rails zwar hervorragende Werkzeuge für die Erstellung von Websites bietet, aber zumindest oberflächlich betrachtet keine großartigen Werkzeuge für die Erstellung anderer Werkzeuge bereitstellt. Es hat das Potenzial, aber man muss wirklich tief graben.

11voto

Tim Howland Punkte 7781

Das Problem bei Konventionen gegenüber Konfigurationen ist, dass man die Konvention kennen muss. Mit einer Konfigurationsdatei hat man wenigstens etwas zum Lesen, wenn man anfängt... Wenn man die Konvention erst einmal kennt, geht es viel schneller, aber in der Zwischenzeit hat man mit der Lernklippe zu kämpfen.

9voto

Orion Edwards Punkte 117361

Ist Rails eine Black Box?

Rails hat einige "magische Code", wo Sie nur schreiben, was ein Tutorial sagt zu schreiben, und Sachen magisch funktioniert, aber es ist überhaupt nicht eine Blackbox.

  1. Per Definition ist eine "Black Box" etwas, in das man nicht hineinschauen kann. Deshalb kann es auch kein Open-Source-Projekt mit einer "Blackbox" geben. Hier ist der stabile Quellcode von rails 2.1 , sehen Sie sich das an

  2. Wenn das Lesen von Quellcode nicht Ihr Ding ist, sind die meisten dieser "magischen Funktionen" auf vielen Websites und Blogs gut dokumentiert und erklärt (und wenn nicht, können Sie hier immer fragen und ich bin mir zu 100% sicher, dass Sie eine gute Antwort bekommen)

  3. Denken Sie daran, dass, wenn Sie sich noch in der Tutorial-Phase befinden, jedes Tutorial eine Menge "fügen Sie einfach diese Code-Zeile ein" enthalten wird, weil es darum geht, die Konzepte über, nicht in das Innenleben von allem zu graben. Jedes andere Framework auf dem Planeten, nicht nur Rails, hat "Magie" in ihren Tutorials

4voto

tvanfosson Punkte 506878

Ich fand Rails sehr einfach zu bedienen. Sie sollten sich vielleicht für Agile Webentwicklung mit Rails . Es war eine große Hilfe für mich beim Erlernen des "Rails-Wegs". Ich benutzte es mehr als Referenz als ein Tutorial, aber es führt Sie durch die Erstellung einer Anwendung und erklärt, was vor sich geht. FWIW, ich abgeholt Rails schneller als ASP.NET (die ich immer noch lernen) und wissen Rails hat immens helfen beim Lernen ASP.NET MVC.

4voto

Hates_ Punkte 62539

Wie bei allem anderen auch, steckt der Teufel im Detail. Ja, es ist extrem einfach, eine Website auf die Beine zu stellen und die Teile zusammenzufügen, um etwas zu schaffen, das funktioniert, aber um ein gut konzipiertes und robustes System zu entwickeln, bedarf es einer tiefergehenden Planung und Überlegung. Es ist sehr einfach, schlechte OO-Entscheidungen zu treffen, wie z.B. das Gesetz von Demeter zu brechen, weil die Dinge einfach so schnell zusammengesetzt werden können. Rails ist dass einfach. Großartiges Rails ist es nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X