15 Stimmen

Wie liest man ein bestehendes Rails-Projekt?

Wenn Sie mit der Arbeit an einem bestehenden Rails-Projekt beginnen, was sind die Schritte, die Sie unternehmen, um den Code zu verstehen? Wo fangen Sie an? Was benutzen Sie, um sich einen Überblick zu verschaffen, bevor Sie sich in die Controller, Modelle, Helfer und Ansichten vertiefen? Gibt es bestimmte Techniken, Tricks oder Tools, die den Prozess beschleunigen?

Bitte antworten Sie nicht mit "Rails & Ruby lernen" (wie eine der Antworten, die die letzter Typ der diese Frage gestellt hat - er hat auch nicht viel Antwort auf seine Frage bekommen, also dachte ich, ich frage noch einmal und fordere ein bisschen mehr). Ich komme mit meinem eigenen Code ziemlich gut zurecht. Es ist das Sortieren des Codes anderer Leute, das mir Kopfzerbrechen bereitet und ich lange brauche, um es zu verstehen.

1voto

Mike Woodhouse Punkte 50241

Ich kann mir zwei Gründe vorstellen, warum ich mir eine bestehende Anwendung ansehe, mit der ich bisher nichts zu tun hatte: Ich muss eine Änderung vornehmen, oder ich möchte einen oder mehrere Aspekte verstehen, weil ich sie als Input für Änderungen verwenden möchte, die ich an einer anderen Anwendung vornehme. In diesem zweiten Fall schließe ich das Lesen zu Bildungszwecken/Aufklärung mit ein.

Ein echter Vorteil des MVC-Musters im Besonderen und vieler Webanwendungen im Allgemeinen besteht darin, dass sie recht einfach in Anfrage-/Antwort-Paare aufgeteilt werden können, die bis zu einem gewissen Grad isoliert verstanden werden können. Sie können also mit einer einzigen Interaktion beginnen und Ihr Verständnis davon ausgehend erweitern.

Wenn ich bestehenden Code ändern oder erweitern muss, sollte ich eine gute Vorstellung davon haben, was die erste Änderung sein wird - wenn nicht, sollte ich wahrscheinlich noch nicht mit dem Code herumspielen! In einer Rails-Anwendung wird die Änderung höchstwahrscheinlich die Ansicht, das Modell oder eine Kombination aus beidem betreffen, und ich sollte in der Lage sein, die relevanten Elemente recht schnell zu identifizieren. Wenn es Tests gibt, überprüfe ich, ob sie laufen, und versuche dann, einen Test zu schreiben, der die fehlende Funktionalität aufdeckt, und los geht's. Wenn es keine Tests gibt, ist es etwas schwieriger - ich mache mir Sorgen, dass ich versehentlich etwas kaputt machen könnte: Ich würde in Erwägung ziehen, Tests hinzuzufügen, um mir mehr Sicherheit zu verschaffen, was wiederum dazu führt, dass ich ein gewisses Verständnis für den untersuchten Bereich entwickle. Ich sollte relativ schnell in der Lage sein, eine rot-grün-refactor Schleife und gewinne an Geschwindigkeit, während ich mich zurechtfinde.

1voto

Führen Sie die Tests durch :-)

Wenn Sie Glück haben, wurde es auf RSpec aufgebaut, und das wird das Verhalten unabhängig von der Implementierung beschreiben.

0voto

August Lilleaas Punkte 52649
  1. Ich laufe rake test in einem Terminal
  2. Wenn die Umgebung nicht geladen wird, werfe ich einen Blick auf den Stack-Trace, um herauszufinden, was los ist, und behebe dann das Problem, damit die Umgebung geladen wird, und führe die Tests erneut durch
  3. Ich starte den Server und öffne die Anwendung in einem Browser. Ich klicke herum.
  4. Beschäftigen Sie sich mit den anstehenden Aufgaben.
  5. Wenn der Code gut ist, bin ich zufrieden. Wenn der Code scheiße ist, bin ich es aus Spaß und Profit verletzen .

0voto

AdamK Punkte 1169

Abgesehen von den bereits geposteten Tipps zur Ausführung von Spezifikationen und der Zerlegung des MVC, mag ich auch:

rake routes

als weitere Möglichkeit, einen Überblick über alle Routen in der App zu erhalten

./script/console

Die Rails-Irb-Konsole ist nach wie vor meine bevorzugte Methode zur Überprüfung von Modellen und Modellmethoden. Schnappen Sie sich ein paar Datensätze und arbeiten Sie mit ihnen in irb. Ich weiß, dass es mir bei der Entwicklung und beim Testen hilft.

-1voto

Schauen Sie sich die Dokumentation an, es gibt eine ziemlich gute Dokumentation zu einigen Projekten. Es ist ein bisschen schwierig, den Code anderer zu verstehen, aber versuchen Sie es... Lesen Sie den Code ;-)

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