Ich versuche derzeit zu entscheiden, welche serverseitige Sprache für die Webentwicklung gelernt und verwendet werden soll. Obwohl es relativ einfach ist, Informationen darüber zu erhalten, warum x, y oder z eine gute Sache sind, ist es schwieriger, die Nachteile der einzelnen Sprachen herauszufinden von ihnen.
Insbesondere bin ich neugierig, welche Nachteile das Lernen und / oder Verwenden von Ruby on Rails im Gegensatz zu anderen vorgegebenen Sprachen / Frameworks hat.
ruby-on-rails
server-side
maxfielden
quelle
quelle
Antworten:
Aus Erfahrung: Der Nachteil ist, dass Sie sich etwas zu sehr auf das Rails-Framework verlassen . Dies ist eine großartige und wunderbare Sache, wenn Sie nur einfache, auf der grünen Wiese befindliche CRUD-Apps schreiben, die genau in den "Sweet Spot" von Rails passen. Ihre Produktivität wird in die Höhe schnellen. In dem Moment, in dem Sie etwas außerhalb dieses Sweetspots tun müssen - interagieren Sie mit einer vorhandenen Datenbank, sprechen Sie mit einer anderen Anwendung, für die keine JSON- oder XML-API definiert ist, und implementieren Sie einen komplizierten Workflow. Rails wird Ihr Feind. Es istEs ist zwar möglich, diese Dinge mit Rails zu tun, aber das ist "gegen den Strich". Sie müssen also im Grunde genommen selbst herausfinden, wie es geht, da die Community in der Regel nur mit "Mach das nicht, das sind nicht die Rails" antwortet way "- dies führt entweder zu Produktivitätsverlusten oder zu sehr unordentlichem Code, da Sie sich im Grunde um das Rails-Framework kümmern müssen.
Außerdem gibt es den unausgesprochenen Nachteil: Alles andere wird hässlich und klobig erscheinen. Sobald Sie den süßen, süßen Nektar von Rails probiert haben (okay, evangelisieren Sie hier nur ein bisschen ...), ist alles andere gut. Wenn Sie von Rails zurück zu PHP, ASP.NET WebForms oder Java wechseln, fühlen Sie sich wie auf einem Nagelbett, wenn Sie in einem üppigen Garten herumtollen. Sie werden die anderen Sprachen / Frameworks nicht im selben Licht sehen, und obwohl Sie sie vielleicht immer noch schätzen, werden Sie sich insgeheim nach Rails liebevoller Umarmung sehnen.
quelle
Für Ihre erste serverseitige Sprache kann es meines Erachtens ein paar Probleme mit RoR geben:
Du lernst nicht nur eine Sprache, du lernst einen Rahmen. Ich würde definitiv etwas Zeit brauchen, um mit einfachem altem Rubin herumzuspielen, bevor ich auf Schienen springe.
Da es sich um ein Framework handelt und es sich dabei um ein „meinungsbildendes“ Framework handelt, würde es Ihnen meines Erachtens nur einen sehr begrenzten Einblick in das geben, was alles im Framework vor sich geht.
Insgesamt kann Ruby on Rails ein guter Ausgangspunkt sein, um den Ball ins Rollen zu bringen, aber es gibt eine Menge zu lernen über die Webentwicklung, die Sie möglicherweise verpassen, wenn Sie zu stark auf ein einzelnes Framework angewiesen sind.
quelle
Ich habe mehrmals versucht, RoR zu lernen, und mein größtes Problem ist immer, die Pakete zum korrekten Funktionieren zu bringen und die Dokumentation. Das Problem mit der Dokumentation ist, dass sie immer veraltet (oder sehr einfach) zu sein scheint. Ich habe die Grundlagen von der Seite bekommen, aber darüber hinaus schien alles so veraltet zu sein (sogar das Buch, das ich gekauft und am Ende zurückgegeben habe). Ein weiterer Nachteil könnten die Abhängigkeiten sein, die einige Bibliotheken haben, und wie sie mit anderen in Konflikt geraten können, wie von Ben Coe angegeben .
Etwas, woran ich später gedacht habe und anstatt es zu kommentieren, bearbeite ich einfach meine Antwort: RoR hat eine Chance, Ruby für dich zu ruinieren. Ich weiß, als ich es versuchte, dachte ich, dass "Ruby dumm war". Dann, ein paar Monate später, beschloss ich, Ruby auszuprobieren und liebte die Sprache. Es war der Rahmen, der mich dazu brachte, die Sprache zu hassen. Ich habe mich nicht viel damit beschäftigt, aber als ich es tat, hat mir Sinatra sehr gut gefallen . Ich glaube, ich habe die Freude, die die meisten Menschen aus Sinatra von RoR bekommen.
quelle
rake db:migrate
. Andererseits fand ich Sinatra viel einfacher und verständlicher. Ich setze die Dinge jedenfalls lieber auf meine eigene Art und Weise, und die Grundstruktur einer Rails-App erschien mir einfach zu kompliziert.Wenn dies Ihre erste serverseitige Sprache ist, ist sie so gut wie jede andere. Sie müssen sich auf eines konzentrieren und, nachdem Sie das Gefühl haben, es gemeistert zu haben, andere erforschen und Ihre eigenen Schlussfolgerungen ziehen.
Ich arbeite täglich mit RoR und ASP.NET, aber seltsamerweise bevorzuge ich die ASP.NET-Welt, aber das hat mehr mit persönlicher Philosophie zu tun als mit der Sprache oder der Architektur selbst. (Ich bin ein bisschen ein Kontrollfreak und ich persönlich mag stark getippte Sprachen).
Egal, ich sage, probieren Sie es aus. RoR ist eine großartige Umgebung zum Arbeiten, aber bevor Sie direkt zu Rails wechseln, sollten Sie sich mit Ruby als Sprache vertraut machen. Ruby ist nicht nur eine Web-Sprache, sondern auch eine ziemlich coole Skriptsprache, wenn Sie eine * nix-Box verwalten müssen und viel Zeit sparen können.
quelle
Als jemand, der kürzlich Rails gelernt hat (als Hobby - hat es nie für kommerzielle Zwecke verwendet) und bereits in JEE und ASP.NET gearbeitet hat, war die Antwort von Wayne M sehr zutreffend.
Wie auch immer, es gibt eine subtile Seite, die noch niemand erwähnt hat, die mich aber bei Rails ein wenig gestört hat - das starke Vertrauen in die Konvention über die Konfiguration .
Wenn Sie es gewohnt sind, mit einer neuen Codebasis in Dateien zu suchen, nervt Sie CoC wahrscheinlich, wenn Sie versuchen, Rails zu finden. Es ist großartig für einfache CRUD-Greenfields, die genau nach dem Rails-Prinzip ausgeführt werden (wie Wayne M sagt), aber für etwas Einzigartigeres und Komplizierteres wird es schwierig sein, herauszufinden, was los ist, wenn Sie versuchen, den Fluss durch Suchen herauszufinden Zeug in Dateien, um zu sehen, wie die Klempnerarbeit angeschlossen ist.
Obwohl ich denke, dass dieses Problem wahrscheinlich nicht so schlimm sein wird, wenn Sie viel mehr Erfahrung mit Rails haben. Ich kann definitiv sehen, dass dies ein Problem für jemanden ist, der aus der Java / .NET-Webentwicklung von oldskool stammt, der an einen sehr ausführlichen Konfigurationsfluss gewöhnt ist - und sich darauf verlässt, dass alles irgendwo geschrieben wird.
quelle
Bei mir ist das größte Problem, dass ich mein erstes X lerne (in Ihrem Fall ist X eine serverseitige Web-Sprache / Framework). Sobald ich andere Probleme sehe, möchte ich sofort mit der Anwendung von X beginnen, auch wenn dies der Fall ist ist möglicherweise nicht die beste Option. Ich bin darin besser geworden, aber es ist immer noch eine starke Tendenz.
Ruby on Rails ist für den Anfang eine gute Wahl - es gibt eine gute Community, viele Dokumentationen und gute Tutorials. Denken Sie jedoch unbedingt an die Alternativen, insbesondere wenn Sie mehr Web-Entwicklung betreiben. RoR könnte für einige Probleme zu viel sein, für andere eine unzureichende Lösung und für ein anderes Set die beste Wahl. Kennen Sie die Stärken, Schwächen und die Verwendung des Tools.
quelle
Mein Rat wäre, sich ein klares Bild von dem Projekt zu machen, das Sie abschließen möchten, und dann einfach zu versuchen, es zu erstellen. Wenn Sie auf Probleme stoßen, finden Sie schließlich die richtigen Werkzeuge. Dieser Ansatz ist gut, weil Sie Entscheidungen auf der Grundlage prägnanter Probleme treffen.
Eine andere Sache zu tun ist, Bücher zu kaufen. Internet-Tutorials machen es meiner Erfahrung nach nicht einfacher. Sie lassen auch viel Raum für Ablenkung offen. Wenn Sie ein Buch haben, müssen die Verlage sicherstellen, dass es einen Mehrwert bietet, da sie bei schlechten Rezensionen Geld verlieren. Wenn Sie ein wenig Geld ausgeben, sparen Sie viel Zeit.
quelle
Ich kann ehrlich gesagt nicht verstehen, wer poetisch darüber nachdenkt, was ein Spaziergang im Garten Ruby-on-Rails ist. Ich bin als erfahrener ASP.NET-MVC-, Java-, PHP- und Python-Entwickler dazu gekommen - und fand es die schrecklichste Zeitverschwendung aller Zeiten! 90 Prozent der Online-Google-Antworten sind falsch oder unvollständig. Warum? Hat es sich jedes Jahr so sehr verändert? Oder kümmert sich niemand darum, dass Code tatsächlich funktioniert? Ich brauchte sehr viel Zeit, um einfache Dinge zu tun. weit, weit mehr, als ich zum Beispiel in C # / ASP.NET-MVC brauche. Ich habe sicherlich nie annähernd so lange gebraucht, um meine ursprünglichen Technologien zu erlernen. Zugegeben, ROR ist knapp. Wenn dir das wichtig ist. Aber ich fand es selten klar, wie man Code erstellt, der eine Aufgabe erledigt. Persönlich würde ich lieber 20 Sekunden lang auf einer Tastatur tippen, um Code zu schreiben, der definitiv funktioniert. Es ist klar, und Sie können ihm folgen, anstatt 2 Sekunden lang knappen Ruby-Code einzugeben. Dies funktioniert jedoch erst, wenn ich die ganze Nacht wach bin und nach einer Möglichkeit Ausschau halte, es tatsächlich zum Laufen zu bringen. Es ist ein schrecklicher, stinkender Haufen Dodo. Warum? Ist es der Open-Source-Code (wie im kostenlosen), der keine Anreize schafft, ihn zu einem Qualitätswerkzeug zu machen? Zu viele Script-Kiddies, die Revisionen und Module und schlechte Dokumentation hineinpumpen? Ich weiß es nicht. Aber als ich endlich diesem ersten Ruby-Rails-Projekt entkommen konnte, schwor ich, dass ich nie wieder in dieses Chaos geraten würde! schafft keine Anreize, es zu einem Qualitätswerkzeug zu machen? Zu viele Script-Kiddies, die Revisionen und Module und schlechte Dokumentation hineinpumpen? Ich weiß es nicht. Aber als ich endlich diesem ersten Ruby-Rails-Projekt entkommen konnte, schwor ich, dass ich nie wieder in dieses Chaos geraten würde! schafft keine Anreize, es zu einem Qualitätswerkzeug zu machen? Zu viele Script-Kiddies, die Revisionen und Module und schlechte Dokumentation hineinpumpen? Ich weiß es nicht. Aber als ich endlich diesem ersten Ruby-Rails-Projekt entkommen konnte, schwor ich, dass ich nie wieder in dieses Chaos geraten würde!
quelle
Ich schlage vor, Sie schauen sich Indizes an, die die Entwicklung verschiedener Sprachen / Skripte bewerten. Hier ist ein Link, der sich als nützlich erweisen könnte: beliebte, professionell verwendete Web-bezogene Sprachen.
Dies zeigt die relative Popularität von webbezogenen Sprachen basierend auf der Suche nach Online-Stellenangeboten.
quelle
Ich stimme einigen der obigen Antworten zu RoR zu. Ich habe in den letzten zwei Jahren Anwendungen mit RoR entwickelt. Die CRUD-Operationen (Erstellen, Lesen, Aktualisieren und Löschen) eignen sich hervorragend für einfache Anwendungen. Sie sind ein Segen für die Entwicklung einfacher Anwendungen, haben aber auch ihre Grenzen. Obwohl es viele Edelsteine gibt, die verschiedene Vorteile und Benutzerfreundlichkeit bieten, ist es im Grunde genommen. Wenn Sie die Box verlassen, werden alle Anwendungen verdreht.
Wenn Sie ein großes Team sind, das mit RoR an einer Anwendung arbeitet, kann es schwierig sein, die Arbeit zu delegieren.
quelle