Dies ist aus Erfahrung gelernt, weiter zu lernen und eine relativ einfache Anwendung in Rails zu schreiben.
1) Lernkurve
Rails ist täuschend einfach. Die Tutorials, Videos und Bücher zeigen, wie schnell Sie eine funktionierende (wenn auch hässliche) Anwendung erstellen können, aber diese kratzen wirklich nur die Oberfläche. Sie verlassen sich in der Regel stark auf die Codegenerierung und das "Scaffolding", was zwar ein gutes Werkzeug beim Lernen ist, dessen Nützlichkeit jedoch schnell überlebt.
Machen Sie keinen Fehler, Rails ist schwer zu meistern. Sobald Sie die Grundlagen überwunden haben (dazu später mehr), stoßen Sie kopfüber auf eine Mauer, wenn Sie mehr tun müssen als nur die extrem vereinfachte "Demo-App" -Funktionalität, die Sie ankündigen. Sie können mit Grundkenntnissen in Ruby auskommen, während Sie lernen, aber Sie müssen Ruby schnell erlernen, oder Sie bleiben hoch und trocken (und nicht die gute Art von DRY
), wenn Sie die Einschränkungen von Rails überschreiten müssen.
Rails ist, wie ich es liebevoll nenne, Malen durch Zahlenprogrammierung . Wenn Sie sich zu 100% an die Konventionen halten (dh innerhalb der Linien bleiben und die Farben verwenden, die Sie verwenden sollen), können Sie schnell und einfach anständige Anwendungen erstellen. Wenn Sie jedoch abweichen müssen, kann Rails von Ihrem besten Freund zu Ihrem schlimmsten Feind werden.
2) Wenn alles, was Sie haben, ein Hammer ist ...
Rails kann sehr gut vereinfachte CRUD-Anwendungen ausführen. Das Problem tritt auf, wenn Ihre App mehr als nur Lesen / Schreiben aus einer Datenbank ausführen muss. Nun, die letzte Rails-Version, die ich verwendet habe, war 2.3.4, also haben sich die Dinge seitdem möglicherweise geändert, aber ich hatte große Probleme, als sich die Geschäftsanforderungen änderten, sodass in die Anwendung ein kleines Workflow-System eingebaut und integriert werden musste eine ältere PHP-Anwendung. Die Rails-Konvention "One Form, One Model" eignet sich gut für einfache Apps und Dateneingabeanwendungen, jedoch nicht für Anwendungen, bei denen Verarbeitungslogik erforderlich ist, Workflows vorhanden sind oder bei denen der Benutzer keine typischen Daten eingibt ein paar Textfelder, drücke "Submit". Es kann getan werden, aber es ist keineswegs "einfach", oder vielmehr war es nicht
Rails spielt auch nicht gerne gut mit anderen Anwendungen, die nicht die bevorzugten Methoden für den Datenzugriff verwenden. Wenn Sie mit einer Anwendung kommunizieren müssen, die keine API im "Web 2.0" -Stil hat, müssen Sie Rails umgehen, anstatt damit zu arbeiten. Ich spreche hier wieder aus Erfahrung, denn das ist mir passiert.
3) Es ist neu
Schließlich ist Rails in vielen Bereichen immer noch das "neue Kind auf dem Block". Dies spielt keine Rolle für den persönlichen Gebrauch oder für Szenarien wie "Ich denke, es ist cool und möchte es lernen", sondern für jemanden, der Rails bei meiner täglichen Arbeit bevorzugt, wenn Sie sich nicht an einem Ort befinden, an dem Rails ist Weit verbreitet, kann es sehr schwierig sein, eine Vollzeitstelle als Rails-Entwickler zu finden. Es ist immer noch weitgehend die Domäne von "angesagten, neuen Startups" und in den meisten Ballungsräumen kein Hauptakteur. Ihr Kilometerstand kann in dieser Hinsicht variieren, aber ich weiß, dass meine Gebietsschienen (Tampa) im Wesentlichen nicht vorhanden sind.
4) Feuer und Bewegung
Die Schienen ändern sich ständig. Dies ist sowohl eine gute als auch eine schlechte Sache. Es ist gut, weil sich die Community weiterentwickelt und neue Konzepte annimmt. Es ist schlecht, weil sich die Community weiterentwickelt und neue Konzepte annimmt. Es kann für einen Rails-Neuling sehr überwältigend sein, denn normalerweise werden Sie feststellen, wenn Sie auf ein Problem stoßen und sich umsehen, dass entweder Leute das eine oder andere Juwel empfehlen, um es zu beheben, oder Sie sagen, dass dieser Weg sowieso schlecht ist, und Sie sollten es nicht. Wenn Sie es nicht verwenden, haben Sie hier eine bessere Möglichkeit ... und am Ende haben Sie eine Wäscheliste mit zusätzlichen Tools, die Sie zusammen mit Rails lernen können, um mit den Rails-Erkenntnissen Schritt zu halten. Dinge wie Git
, BDD/RSpec
, Cucumber
,Haml/Sass
und ein Füllhorn an anderen Dingen schwebt herum und wird als der "richtige Weg, Dinge zu tun" in Rails-Land gedrängt, und wenn man aus Erfahrung spricht, könnte man überfordert sein, ein Dutzend oder mehr Technologien zusätzlich zu Rails zu lernen. weil sich die Verwendung des Standard Rails-Toolkits "falsch" anfühlt.
Dies wird jetzt durch Rails 3.1 noch verstärkt, wodurch Sass und CoffeeScript zum Standard werden. Ein absoluter Rails-Neuling muss also nicht nur Ruby und Rails lernen, sondern auch Sass (wohl einfach, wenn Sie CSS kennen) und CoffeeScript (nicht verrückt schwierig, aber sicher) unterschiedlich genug von rohen JavaScript) auf ein absolutes Minimum zu beginnen, und es kann davon ausgegangen werden Git. Auch ohne RSpec und Freunde und das Dutzend oder mehr Juwelen, mit denen Sie normalerweise enden, müssen Sie vier verschiedene Dinge lernen, bevor Sie ernsthaft mit dem Schreiben von Rails-Anwendungen beginnen können. Vergleichen Sie dies mit einer Sprache wie C # oder Java oder sogar PHP, in der sich Ihre HTML- / CSS- / JavaScript- / SQL-Kenntnisse nicht ändern werden und Sie nur die Sprache selbst und möglicherweise die Framework-Nuancen lernen müssen.