Ruby on Rails-Entwicklungsprozess

8

Wir sind ein kleines Team, das im Begriff ist, eine lokalisierte Version einer erfolgreichen US-Web-App in Korea mit RoR zu entwickeln.

Unsere Frage lautet: Welchen Prozess würden Sie empfehlen, um die App zu entwickeln?

Sollen wir mit den Datenmodellen beginnen? Die Ansichten in HTML und dann codieren? Nehmen Sie eine einzelne Funktion, entwickeln Sie sie und fügen Sie bei Bedarf weitere Funktionen hinzu?

Noch ein paar Details zum Projekt:

  1. Es ist eine Web-App für Kleinunternehmer
  2. Es enthält die üblichen Verwaltungsfunktionen für crm-Berichts-Dashboard-Benutzer-Verwaltungsdokumente, die die meisten Apps für kleine Unternehmen aufweisen
  3. Die Teamgröße beträgt anfangs 2 Personen: ein Programmierer und ein Designer / CSS-Guru (nur ein Programmierer)
  4. Das Erfahrungsniveau ist mittel. Gute Kenntnisse in Git, Ruby, Rails und XHTML / CSS, weniger Erfahrung mit Bereitstellungsproblemen. Dies ist das erste Projekt dieser Art, das wir gemeinsam als Team durchführen
Kai EV
quelle

Antworten:

2

Ich würde das verhaltensgesteuerte Entwicklungsmuster empfehlen.

Wenn Sie nicht vertraut sind, möchte ich Ihnen einen Überblick geben:

Beginnen Sie an den Muttern und Schrauben der "Höhenrudersteigung" der Anwendung.

"Was ist das für ein Ding, das wir bauen? Welchen Wert bringt es?"

Wählen Sie dann die absolute Mindestanforderung "Funktion" aus und beginnen Sie mit der "Spezifikation". Ich empfehle die Verwendung von Cucumber: http://cukes.info/ und Rspec: http://rspec.info/ , um die Funktion zu beschreiben muss sich verhalten .. führen Sie die Tests / Spezifikationen aus und beobachten Sie, wie sie fehlschlagen ..

Tauchen Sie dann ein und beginnen Sie mit der Implementierung der Funktion. Beobachten Sie, wie die Tests 1 zu 1 bestehen.

Wenn diese Funktion abgeschlossen ist (alle Tests sind bestanden), wiederholen Sie den Vorgang. Fahren Sie mit der nächsten Mindestanforderung "Funktion" fort und so weiter.

Der Workload konzentriert sich auf das Feature, das Sie gemeinsam erstellen. Der Programmierer arbeitet am Verhalten und der Designer am Erscheinungsbild, bis beide perfekt zusammenarbeiten.

Daniel Upton
quelle
Vielen Dank! Gibt es eine Empfehlung für ein gutes Tutorial / Buch über Rspec / Gurke, das uns nicht von den Details festhält?
Kai EV
Ich habe vor kurzem selbst nach dem gleichen gesucht. Mit "the rspec book" kann ich nichts falsch machen: pragprog.com/titles/achbd/the-rspec-book Ich denke, das Wichtigste an BDD ist, dass es für Sie funktioniert Als ich anfing, verbrachte ich so viel Zeit damit, mir Gedanken darüber zu machen, wie hübsch die Testsuite war. Ich habe nie irgendwelche Arbeiten erledigt. Auch dieser großartige Screencast von Ryan Bates war wirklich hilfreich: railscasts.com/episodes/155-beginning-with- Gurke
Daniel Upton
0

Das größte Problem besteht darin, Updates vom Hauptprodukt zu verwalten. Sie müssen Ihre Änderungen zusammenführen, wenn Sie mit den Veröffentlichungen Schritt halten möchten. Alle anderen Faktoren sind meiner Meinung nach irrelevant.

Stellen Sie also sicher, dass Sie das Hauptprodukt nehmen und eine Kopie davon erstellen, um daran zu arbeiten. Wenn sie eine neue Version veröffentlichen, aktualisieren Sie Ihr Original mit ihrer. Anschließend können Sie die vorgenommenen Änderungen anzeigen und mit Ihrer Version zusammenführen. Das Refactoring des Produkts ist ein sehr großes Problem - tun Sie es nicht, da jede neue Datei es schwierig macht zu erkennen, wo die Änderung gegenüber dem Original stattgefunden hat. Es ist auch einfacher, wenn Sie Ihre Änderungen in separaten Dateien speichern können.

Andernfalls haben Sie für die Entwicklung von Feature zu Feature eine gute Möglichkeit, die Funktionsweise zu testen, bevor Sie mit dem nächsten Feature fortfahren. Es ist viel schwieriger, alles auf einmal zu versuchen. Halten Sie ein Testsystem an Ort und Stelle, damit Sie jede Funktion freigeben und sicherstellen können, dass es funktioniert (dh auf einer Box, die nicht dem Entwickler gehört).

gbjbaanb
quelle
re the dev process - wir hören dich! scheint mit Daniels Empfehlung gut übereinzustimmen, also werden wir es so machen, wie Sie es vorschlagen. Sie sind sich jedoch nicht sicher, ob wir den Abschnitt zur Verwaltung von Updates vollständig verstehen. Beziehen Sie sich auf die Herausforderung nach der Bereitstellung, Funktionen hinzuzufügen / zu ändern? Warum würde ein einfaches Versionsverwaltungssystem diese Änderungen nicht handhaben?
Kai EV