Ruby on Rails 2016 aus den besten Quellen lernen

Ruby on Rails

Das wichtigste zuerst. Das Warum. Ich habe im März 2015 mit dem Codieren begonnen und im September 2015 mit Rails, um diese App codieren zu können: faskyn. Vorher wusste ich nicht genau, worum es bei der Codierung geht. Ich habe einen ausgeprägten mathematischen Hintergrund und benutze ANSYS, Mathcad und Excel. Keines davon hat etwas mit der Webentwicklung zu tun. Also musste ich nicht nur Rails, sondern auch Front-End-, Browser-, http-, Server-, Rack-, Befehlszeilen-, Git- usw. Dinge aufgreifen und auch herausfinden, wie die Geschäftslogik hineinpasst. Mehr als ein halbes Jahr verging und jetzt ist die app in einem ziemlich guten zustand. Momentan versuchen wir mit meinem Freund, einige Benutzer zu finden, aber das ist eine andere Geschichte.

Stapel

Warum Schienen? Anhand des App-Typs war klar, dass es sich um eine Web-App handeln würde. Daher benötigte ich ein Web-Framework, mit dem ich es schnell implementieren konnte. Ab 2015 gab es grundsätzlich zwei sinnvolle Möglichkeiten: RoR und Node.js. Ich habe mich für Rails entschieden, da es schneller geht, Scheiße zu erledigen, einfacher für Neulinge zu finden ist und eine Menge Ressourcen zur Verfügung stehen. Es gab / gibt einen großen Hype um Node.js, aber zum Glück bin ich nicht darauf hereingefallen.

Vollständiger Stack: RoR (Ruby 2.2.3, Rails 4.2.4), Heroku + -Addons, PostgreSQL, Puma, AWS (S3 und CloudFront), SASS, jQuery, Bootstrap, AJAX, RSpec + Capybara, Middleman. Der Stapel ist nichts Besonderes. Da ich mich entschlossen habe, bei Heroku zu bleiben (funktioniert großartig, tolle Dokumentation und beschäftigt sich mit DevOps-Sachen fast ohne Konfiguration), waren Postgres und Puma die Standardoptionen. Da ich ein absoluter Anfänger war, zog ich die Konvention und die gut dokumentierten Lösungen vor.

Fallstricke auf dem Weg

Die meisten Online-Ressourcen sind für Anfänger gedacht. Sie können auch viel für erfahrene Programmierer finden, aber es gibt nur wenige, die in der Mitte des Spektrums liegen. Aus diesem Grund ist es wichtig, die richtige Reihenfolge für das Lesen oder Ansehen zu finden.

Als ich lernte, wurde mir klar, dass die meisten Konzepte leicht zu verstehen sind, wenn sie isoliert sind, aber in komplexen Zusammenhängen ziemlich schwer zu verstehen sind. Wenn Sie 4 bis 5 Dinge miteinander mischen müssen, ist es schwierig, alle Punkte zu verbinden. Das ist eines der Probleme mit fast allen Ressourcen. Sie versuchen, alle Funktionen zu erklären und die Fragen zu beantworten, als wären sie isoliert. Wenn Sie erfahren sind, dass dies kein Problem ist, können Sie es schnell herausfinden. Für einen Anfänger ist dies jedoch überhaupt nicht ideal. Aus diesem Grund schaue ich mir gerne Videos zur Implementierung von End-to-End-Funktionen in der Praxis an. Umso besser, wenn ich mehr Ressourcen finde, die sich ein wenig voneinander unterscheiden, damit ich sie miteinander vergleichen und sehen kann, warum und wie sich das Ändern der kleinen Teile auf die gesamte Struktur auswirkt. So lernen die Menschen doch. Probieren Sie verschiedene Ansätze aus und finden Sie nach einigen Fehlschlägen heraus, wie das funktioniert. Also, großartige Ruby- und großartige Rails-Lehrer, bitte machen Sie Videos / Artikel etwas länger und zeigen Sie uns die Implementierungen aus 2–3 verschiedenen Blickwinkeln.

Aus verschiedenen Gründen (hauptsächlich aufgrund der Qualität der Ressourcen) fielen mir einige Teile leichter und andere schwerer zu erlernen:

Einfacher zu erlernen: HTML, relationale Datenbank, SQL-Abfragen, Controller + Routing, Hintergrund + Cron-Jobs, grundlegendes Ruby, serverseitiges Rendering, Bootstrap, jQuery, Git

schwieriger zu erlernen: HTTP, clientseitiges Rendern, CSS, Benennen von Dingen, fortgeschrittenes Ruby, Googeln auf fortgeschrittenem Niveau (wichtigste Fertigkeit übrigens), Konfiguration verschiedener Tools, Gestaltungsprinzipien / -muster in der Praxis

Ressourcen (wofür Sie dies lesen)

Es ist schwierig, die besten Ressourcen auszuwählen. Wie ich schon sagte, ist es viel wichtiger, die richtige Reihenfolge zu finden. Die folgende Liste enthält die Videos / Bücher / Kurse, die ich als qualitativ hochwertig betrachte. Ich wünschte, ich hätte diese Liste zurück, als ich angefangen habe, und ich hoffe, dass sie Ihnen gute Dienste leistet. (Ich habe auch andere Ressourcen ausprobiert, aber da sie mir nicht gefallen haben, habe ich sie nicht in diese Liste aufgenommen.)

  1. Codecademy, Programmieren lernen, Javascirpt & jQuery, Stackoverflow, Google. Dies sind großartige Ressourcen, wenn Sie nichts über Codierung wissen und Sie sie ziemlich schnell durchgehen können. Auf Codecademy empfehle ich, alles zu tun, was mit HTML, CSS, JS, Ruby, RoR und SQL zusammenhängt. Wenn Sie vom ersten Tag an nicht weiterkommen, sollten Sie zu Google und Stackoverflow wechseln. Wenn Sie diese Tools richtig einsetzen, werden Sie viel schneller.
  2. Ruby on Rails Tutorial, Agile Webentwicklung mit Rails 4, Rails 4 in Aktion, The Rails 4 Way, GoRails in den ersten 20 Folgen, Become a Heroku Rails Ninja, The Odin Project, * Andere Udemy-Kurse. Die ersten drei sind einige großartige Bücher, die das Erstellen einer einfachen Web-App in Rails durchlaufen. Das Beste ist, wenn Sie alle 3 Code folgen, um die Grundmuster zu schnitzen, aber die Tests fürs Erste überspringen. Tests sind sehr wichtig und wir werden später darauf zurückkommen, aber Sie müssen noch einige andere Dinge lernen und sollten sich auf diese konzentrieren. Der Rails 4 Way behandelt einige bewährte Methoden, die Aufschluss darüber geben, wozu Schienen in der Lage sind. Bevor Sie den nächsten Schritt tun, sollten Sie sich die ersten 20 Folgen von GoRails ansehen, in denen Sie einige Konzepte (Routing, Parameter, Ansicht und Controller-Verbindung) kennenlernen, die am Anfang magisch erscheinen können. Ich habe auch ein paar Rails-Kurse bei Udemy gekauft. Leider saugen die meisten von ihnen, aber der Become a Heroku Rails Ninja ist der beste Kurs, den ich je gekauft habe. Für rund 20 US-Dollar können Sie unzählige schmerzhafte Stunden sparen und es wird alles vorgestellt, wofür Sie Heroku verwenden können. Das Odin-Projekt ist eine kuratierte Sammlung von Ressourcen und Projekten zum Erlernen der Webentwicklung in RoR von Null. Wenn Sie nicht weiterkommen, finden Sie dort eine Reihe hilfreicher Informationen. Ich empfehle daher auf jeden Fall, nach Antworten zu suchen. Ich würde jedoch nicht empfehlen, den gesamten Kurs durchzuarbeiten, da dort auch Dinge vermittelt werden, die nicht wirklich notwendig sind. In dieser Phase sollten Sie auch über HTTP und die Arten von Anfragen / Antworten (html / javascript / JSON) sowie über RESTful Design lesen. Bis Sie mit diesem Stapel fertig sind, haben Sie 3 Web-Apps mit Anleitung codiert. Jetzt sollten Sie Ihre Web-App / Apps erstellen (falls Sie dies noch nicht getan haben). Überlegen Sie sich einige Funktionen, die Sie implementieren möchten, und starten Sie Ihren Editor. Ich versichere, Sie werden in kürzester Zeit den Tiefpunkt erreichen.
  3. Rails Guides, RailsCasts, GoRails, The Well Grounded Rubyist (zur Verbesserung Ihrer Rubinkenntnisse). Wenn Sie also stecken bleiben (was einige Male passieren wird), gibt es im Internet sicher irgendwo eine Antwort. Das heißt aber nicht, dass Sie es finden werden. Zumindest habe ich es nicht getan. Im Nachhinein ist es also die wichtigste Fähigkeit, den Namen Ihres Problems zu finden oder es zumindest beschreiben zu können. Im ersten Punkt habe ich Stackoverflow und Google erwähnt. Das sind immer noch deine besten Freunde, aber ganz oben sind einige zusätzliche, die nur nützlich sind, wenn du mit den grundlegenden Dingen vertraut bist. RailsGuides wird von Neulingen irgendwie unterschätzt. Ich erinnere mich, dass ich seit Tagen nach Antworten gesucht habe und diese in den RailsGuides klar erklärt wurden, aber ich konnte sie irgendwie nicht finden. RailsCasts ist etwas veraltet, aber wenn Sie sich die Videos ansehen, erhalten Sie eine grundlegende Vorstellung davon, wie etwas zu tun ist, und können dann problemlos weitere Ressourcen zum Thema finden. Da es über 400 RailsCasts-Episoden gibt, werden Sie mit Sicherheit einige Screencasts zu Ihrer gewünschten Funktion finden. Ich habe bereits im vorherigen Punkt GoRails erwähnt, um die Grundlagen zu erlernen, und jetzt können Sie in den späteren Folgen nach bestimmten Funktionsimplementierungen suchen. Es ist wie RailsCasts, aber mit den neuesten Stacks / Trends und kostet nur 9 USD / Monat. Es ist auch Zeit, tief in Ruby einzutauchen. Zu diesem Zeitpunkt sind Sie bereits mit Rails vertraut und haben eine gute Menge Code geschrieben. Wenn Sie The Well Grounded Rubyist lesen, werden Sie sehen, wie die Bestandteile von Rails zusammenkommen, und Sie werden feststellen, dass Sie mit etwas fortgeschritteneren Ruby-Fähigkeiten Ihre Hindernisse viel zu oft hätten überwinden können.
  4. Rails Antipatterns, Anwendungen für wachsende Rails, Testen von Rails im Alltag mit RSpec, Testvorschriften für Rails 4, Rest der Railscasts (insgesamt ~ 420) und GoRails-Episoden, die Sie noch nicht gesehen haben (insgesamt ~ 120), RailsConf-Videos, Refactoring von Artikeln und Videos, Upcase: Wöchentliche Iterationsepisoden (auch insgesamt ~ 120), Upcase: Intermediate Ruby on Rails, Upcase: Test-Driven Rails. Lesen Sie weiter und schauen Sie sich Codierungsvideos an. Die Bücher / Videos, die ich in diesem Punkt erwähne, sind nicht für Neulinge. Sofern Sie keine wirklichen Erfahrungen mit Web-Entwicklung oder Rails haben, sollten Sie diese erst anwenden, wenn Sie die in den vorherigen Punkten genannten Punkte durchlaufen haben (oder fast durch sind). Mit diesen Ressourcen können Sie lernen, wie Sie sauberen und wartbaren Code in Rails schreiben. Sie werden auch in der Lage sein, einige OOP-Prinzipien / Muster und Architekturentwürfe aufzunehmen. Rails Antipatterns ist ein sehr nützliches Buch über die Fehler, die fast alle Menschen machen, wenn sie in den Rails-Zug steigen. Ich versichere Ihnen, dass Sie viele davon auch in Ihrer bestehenden Codebasis finden werden. Ich komme von Zeit zu Zeit zu diesem Buch zurück, um zu überprüfen, ob ich die Konventionen richtig befolge. Growing Rails bietet Lösungen für die Organisation von Code, damit dieser modular aufgebaut und von Controllern bis zu CSS gewartet werden kann. In dieser Phase sollten Sie auch mit Tests beginnen. In der Rails-Community gibt es eine endlose Debatte darüber, welche Test-Frameworks verwendet werden sollten. Wenn Sie nichts über Tests wissen und es niemanden in Ihrer Nähe gibt, der Ihnen helfen kann, wenn Sie nicht weiterkommen, dann empfehle ich RSpec definitiv gegenüber Minitest. Es gibt eine Menge großartiger Ressourcen, um es zu lernen, wie die beiden Bücher, über denen ich ein paar Mal das Leben gerettet habe. Beim Testen wird im Grunde genommen ein völlig neues Framework und Konzept aufgegriffen, daher würde ich es nicht von Anfang an tun, da Sie sonst schnell überfordert sein werden. Denken Sie jedoch daran, dass dies für Ihre Produktions-Apps und Ihre Rails-Karriere unvermeidlich ist. Wenn Sie sich die restlichen RailsCasts- und GoRails-Videos ansehen, werden Sie besser verstehen, wozu Rails in der Lage ist. Einmal im Jahr findet die RailsConf statt, auf der alle Experten zusammenkommen und über Best Practices, die Zukunft von Rails und vernetzte Themen sprechen. Alle Videos werden auf YouTube hochgeladen und es gibt einige Juwelen unter ihnen. Upcase wird von thoughtbot erstellt und richtet sich an Leute, die die Qualität ihres Codes verbessern möchten. In der Reihe Weekly Iteration finden Sie eine Reihe unabhängiger Videos zu Designprinzipien und Refactoring. Die Videos beginnen normalerweise mit einer vorhandenen Codebasis, die bis zum Ende der Episode zu einem wartbareren und modulareren Code überarbeitet wird. Mit den Intermediate Ruby on Rails- und Test Driven Rails-Pfaden können Sie sich die Hände schmutzig machen und einige kleine Apps erstellen, bei denen es eher darum geht, einige Funktionen auf die richtige Art und Weise zu implementieren, als vorhandene umzugestalten.
  5. Metaprogrammierung von Ruby 2, Praktisches objektorientiertes Design in Ruby, Ruby Science, Der vollständige Leitfaden zur Schienenleistung, Objekte auf Schienen, Rubytapas, Zerstöre alle Software, Refactoring (Ruby-Version), Entwurfsmuster in Ruby, Eloquenter Ruby, Wiederaufbau von Schienen. In den vorangegangenen Punkten habe ich nur Ressourcen erwähnt, die ich bereits fertiggestellt / tief in sie gesteckt habe. An dieser Stelle führe ich einige Ressourcen auf, über die ich mich sehr freue, die ich jedoch noch nicht begonnen habe, mit Ausnahme des praktischen objektorientierten Designs in Ruby. Das POODR-Buch ist eines der besten Bücher, die ich je gelesen habe. Es wird deutlich, warum Sie sich um gut gestalteten Code kümmern müssen und was die grundlegendsten Schritte sind, um die Regeln in Ruby-Apps zu befolgen. Wie Sie sehen können, beziehen sich die restlichen Bücher auch hauptsächlich auf Ruby. Am Ende des Tages ist Rails nur eine gut organisierte Rack-App, die in Ruby geschrieben wurde, und ich hoffe, dass ich mit dieser App meine Ruby- und OOP-Kenntnisse wirklich vertiefen und zum nächsten Level gelangen kann.
  6. DHH, Yukihiro Matsumoto, Aaron Patterson, Yehuda Katz, Tobias Lutke, Jose Valim, Obie Fernández, Avdi Grimm, Ryan Bates, Sandi Metz, Mike Perham, Gary Bernhardt, Nate Berkopec, Chris Oliver, Richard Schneeman, Jonas Nicklas, Joe Ferris. Der Bonuspunkt. Diese Typen gelten als Experten für Ruby oder RoR und haben aussagekräftige Inhalte über das Internet, von denen Sie lernen können. Die Liste ist keineswegs vollständig, da ich sicher bin, dass ich versehentlich einige großartige Köpfe von der Liste gestrichen habe. Ich würde vorschlagen, nach deren Inhalten zu suchen. Einige ihrer besten Sachen sind bereits in diesem Beitrag aufgeführt, aber es gibt eine Reihe von Artikeln / Blogs / YouTube-Videos, die Sie zu einem besseren Programmierer machen.

Was hätte ich anders machen sollen?

Es gibt nur eine Sache, die mich nervt. Ich hätte vielleicht einen Coding-Mentor finden sollen. Ich habe mit ein paar Leuten gesprochen und einigen meinen Code gezeigt, aber ich denke, wenn es einen erfahrenen Mentor gegeben hätte, mit dem ich zweimal pro Woche eine Stunde lang hätte sprechen können, wäre meine Lernkurve viel kürzer gewesen.

Nächste Schritte

Dies hängt stark davon ab, was Sie tun müssen oder wollen. Für mich ist es das Folgende:

Wenn Sie ein Rails-Entwickler sind, ist es nicht selten, dass Sie Front-End-Aufgaben ausführen müssen. Für ein neues Projekt ist jQuery vollkommen ausreichend, aber sobald die Codebasis größer wird, kann sie leicht außer Kontrolle geraten. Deshalb habe ich damit begonnen, "react.js" aufzunehmen, und es scheint vielversprechend zu sein. Ich bin mir nicht sicher, ob ich es wirklich in naher Zukunft brauche, aber ich benutze es gerne.

Es gibt einige sehr wichtige Funktionen, die alle Web-Apps gemeinsam haben, aber ich weiß weniger über die Implementierung von Analysen mit Segment + Mixpanel + GA oder die Zahlungsverarbeitung mit Stripe / Braintree. Wenn Sie nur eine Grundkonfiguration benötigen, können Sie diese schnell in Ihre App integrieren. Diese Themen können jedoch schwierig werden, wenn Sie eine komplexere Implementierung benötigen.

Gedanken schließen

Wenn Sie dies lesen, verfügen Sie bereits über die besten Ressourcen. Ich kann nur empfehlen, bei dieser oder einer ähnlichen Bestellung zu bleiben. Wenn Sie dies nicht tun, werden Sie zu oft gegen die Wand schlagen und möglicherweise aufgeben. Wenn Sie die Reihenfolge einhalten, werden Sie ziemlich oft gegen die Wand stoßen. Wenn ja, versuchen Sie einige Zeit damit zu verbringen, die Grundursache herauszufinden. Wenn Sie dies nicht können, gehen Sie noch einmal zurück und sehen Sie sich alle Ressourcen zu diesem Thema an. Wenn es immer noch nicht ausreicht, kehren Sie zu den Grundlagen zurück und beginnen Sie erneut.

Das ist alles für den Moment, wenn Sie Fragen haben, schießen Sie es einfach.

* Update März 2017:

  • Dank der zunehmenden Verbreitung von Rails-Kursen auf Udemy wird der Einstieg immer einfacher. Ich kenne keinen der Anfängerkurse, aber im Allgemeinen ist es sehr einfach, qualitativ hochwertiges Material auf der Website zu finden.
  • Ich habe auch die Ressourcen unter Punkt 5 beendet und sie sind fantastisch. Das Metaprogrammieren von Ruby2 und das Neuerstellen von Rails vertiefen Ihr Ruby-Wissen und decken den größten Teil der Rails-Magie auf. Ich wünschte, ich hätte sie früher gelesen. POODR, Ruby Science, Refactoring und Design Patterns verbessern sofort Ihre Codierungs- und Designfähigkeiten, die in allen Sprachen angewendet werden können.