Rail's "Gotchas" und Lernkurve - wird es jemals aufhören? [geschlossen]

8

Ich habe ein paar Wochen lang ein neues Rails-Projekt entwickelt, und während ich über die tollen Plugins und einige der wirklich tollen Funktionen in den Frameworks staune, bin ich ein wenig enttäuscht. Und ich mache mir Sorgen.

Ich glaube, ich habe einen Fehler gemacht.

Sollte ich weitermachen oder zu dem zurückkehren, was mir vertraut ist? (Java / Frühling)

  1. Es scheint, dass, wenn Sie nicht nach "einfachen Beispielen" suchen, die Suche nach Ausnahmen von der Regel, Sonderfällen usw. die Produktivität stark behindert und zunehmend zur Norm für mich wird.

  2. Dokumentation und Beispiele von der Hauptseite, Blogs, Screencasts usw. sind meistens veraltet. Für alle 5-10 Beispiele, die da draußen sind, ist 1 von ihnen tatsächlich richtig.

  3. Etwas Neues zu tun, das "einfach funktionieren" sollte, ist fast nie der Fall. Ich versuche und folge Dokumentation und Beispielen, aber meine Ergebnisse scheinen zu variieren und ich entdecke Probleme, die in der Dokumentation und den Beispielen nie erwähnt werden. Dies scheint die ganze Zeit tatsächlich zu passieren.

  4. Meine Erfahrung mit CoffeeScript und seiner Integration mit Rails war eine Katastrophe. Nicht in der Lage zu sein, das Problem zu erkennen, wenn ein "Compilerfehler" auftritt, ist mehr als frustrierend.

  5. ActiveRelation ist wirklich großartig, bis Sie eine Abfrage erstellen müssen, die 7 Tabellen verbindet. Dann fängt es an zu brechen. Ich denke, es ist möglich, dass Sie diese 7-Tabellen-Join-Abfrage in Hibernate schneller erledigen und beim ersten Mal zuverlässig beenden können.

  6. Das Testen ist in Rails wirklich sehr schwierig. Es gibt einfach zu viel "Magie". Da Ruby dynamisch ist, habe ich keine Ahnung, was ich anrufen muss, um etwas angemessen zu testen. Es scheint immer Ausnahmen von der Regel zu geben.

    Zum Beispiel funktioniert Devise so, wie Sie es erwarten ... bis Sie Devise in Helfern testen wollen. Es wird einfach nicht funktionieren, also müssen Sie die von Devise generierten Methoden in Ihren Tests erfinden, um die Tests zu bestehen. Sie müssen dies nicht für Controller tun.

    Es gibt einige Blogs, die zeigen, wie man mit Rails testet, aber sie sind extrem trivial und nicht sehr hilfreich. Einige von ihnen sind eigentlich nur schlecht. Ich fand heraus, wie man Validierungen auf eine viel bessere Weise als viele der Blogs, die ich zum Beispiel gefunden habe, testen konnte. Ich finde nur, dass ich oft alleine bin, wenn es um das Testen geht.

  7. Warum funktionieren Bilder und Stylesheets beim Wechsel in die Produktion nicht richtig? Das ist verrückt. Tonnenweise Leute fragen das, wenn Sie es googlen ... aber das Framework funktioniert nicht "einfach".

    Ich bin zu Tode erschrocken, um diese Anwendung eventuell zu installieren. Die Serienversion scheint nicht so zu funktionieren wie die Entwicklungsversion. Unheimlich.

  8. Aus irgendeinem Grund wurde nach dem Hinzufügen von jquery-rails und devise das Authentifizierungstoken während Ajax-Anfragen nicht übergeben. Ich musste die 4 Zeilen JavaScript-Code hinzufügen, damit es funktioniert. Das hat mich 5 Stunden gekostet. In Java, weil Sie richtige Sitzungen haben, müssen Sie nicht einmal über diese Art von Sachen nachdenken.

  9. Tests laufen sehr langsam. Ich habe ungefähr 780 Tests, und es dauert schon viel länger als ein Java-Projekt, das 1800 Tests hat.

  10. Das Testen der Anwendung im Browser ist sehr langsam. Es dauert etwa 1/4 Sekunde, um einige der Seiten zu rendern ... und es gibt nicht einmal so viel ORM-Action! Selbst für Seiten mit einer Datenbankabfrage dauert es 100-200 Millisekunden. Das ist verrückt.

  11. Die Dokumentation ist oft veraltet. Zum Beispiel war der Versuch, Dinge in Devise zu übersteuern, ein Schmerz, weil die Dokumentation mir tatsächlich sagte, ich solle das Falsche tun. Erst nach stundenlangem Googlen und Warten auf 48 Stunden in einem anderen Forum konnte mir jemand sagen, was ich tun musste. Ich wollte nur, dass das Login-Formular einen Benutzer ablehnt, bei dem User.enabled falsch war. Das ist es. Es stellt sich heraus, ich habe Vorrang "aktiv"? statt "active_for_authentication?" - Das war ein Fehler in den RDocs.

  12. Das ORM verhält sich auf wirklich seltsame Weise, die überhaupt nicht intuitiv sind. Einfügungen / Aktualisierungen funktionieren anders, wenn Sie neue Objekte verknüpfen. Es kaskadiert auch nicht wie Hibernate ... was mich vermuten lässt, dass es keine schmutzigen Objekte verfolgt? Wenn es ... ist, warum wird Kaskadierung nicht standardmäßig eingestellt? Dinge wie diese sind kaum gute Standardwerte. Ist Rails bei guten Vorgaben nicht großartig?

Nach 2 Wochen hat sich die Anzahl der "Gotchas" nicht wirklich verlangsamt. Ich bin wirklich besorgt und habe Angst. Ich weiß, dass Java nicht immun gegen Probleme und Probleme ist, aber ich habe im Allgemeinen 2-3 Mal im Monat Probleme bekommen - nicht 30 in einer Woche.

Ich denke fast, dass der Mangel an Flexibilität bei der Verwendung von Java / Spring keine große Last ist, wenn man bedenkt, wie stabil, schnell und vorhersehbar die Plattform ist. Sie schreiben vielleicht ein bisschen mehr Code, aber Sie wissen genau, was vor sich geht ... Sie befassen sich nie wirklich mit stillen Fehlern ... und die Dinge neigen dazu, viel zuverlässiger zu arbeiten.

Ich fange an, Rails für dieses neue Projekt in Frage zu stellen.

    
Fire Emblem 21.05.2011, 15:10
quelle

1 Antwort

4

Das Beste, was Sie tun können, ist die "Agile Web Entwicklung mit Rails" zu bekommen, als ich vor ein paar Jahren anfing, las und arbeitete ich an den Beispielen in diesem Buch und half mir zu verstehen, wie die Dinge funktionieren sollten fungiert als eine großartige Referenz, in die Sie tauchen können, wann immer Sie bestimmte Themen lesen möchten.

Die neueste Version scheint zu sein: Ссылка

    
Scott 21.05.2011, 15:35
quelle

Tags und Links