Was ist der Arbeitsablauf mit 2 Personen an einem Projekt

18

Ich komme zu Ihnen als Programmieranfänger, der an seinem eigenen Projekt gearbeitet hat (das gut vorangeht). Mein Mitbegründer hat auch gelernt, wie man programmiert, und hat einen Punkt erreicht, an dem er wahrscheinlich damit beginnen könnte, einige Dinge zu reparieren und einige Dinge in die Tat umzusetzen.

Er stellte eine sehr gute Frage: "Wie wird das funktionieren?" Etwas, worüber ich nur theoretisieren konnte, da ich nie mit jemand anderem programmiert habe. Könnten Sie mich über den besten Arbeitsablauf beraten? Wir benutzen Git.

Sollten wir bestimmte Teile des Systems besitzen? Code einchecken? Code-Review?

Wie arbeitet man mit> 1 Entwickler?

Geoff Wright
quelle
1
Mein bester Tipp ist, einen Blick darauf zu werfen: nvie.com/posts/a-successful-git-branching-model Es ist eine (gute) Möglichkeit, Code im Team zu organisieren, und wir verwenden ihn auch
schreibst du tests
NARKOZ
... @ NARKOZ - noch nicht. Wir sind gleich reingesprungen. Das ist etwas, was ich gerne machen würde, ich habe mir eigentlich nur ein Buch gekauft.
2
@Geoff Wright: Bitte gehen Sie in Ihr Profil und akzeptieren Sie (klicken Sie auf das Häkchen neben) einige der Antworten, die die Leute so liebenswürdig
iwasrobbed
1
Verwenden Sie bitbucket.com für private Repositories
Klevis Miho

Antworten:

23

Ich arbeite in einem Team, das Git verwendet, wobei über 40 Entwickler zu einem bestimmten Zeitpunkt an mehreren Code-Repositorys (über 100) arbeiten. Wir haben auch mit sehr wenigen Entwicklern angefangen und die Teamgröße innerhalb weniger Jahre vergrößert. Am Anfang kann man mit wenigen Leuten davonkommen, wenn man nur ein Minimum an Schwachsinn kennt. Mit der Zeit werden Sie Ihren Git Fu verbessern und leistungsstarke Funktionen entdecken.

  1. Sie benötigen einen Ort, an dem Sie Ihren Code hosten können. Erwägen Sie die Verwendung Github oder Gitorious . Beide können kostenlos verwendet werden, aber Ihre Repositorys sind öffentlich und für andere sichtbar. Wenn Sie private Repositories möchten , können Sie diese kostenlos oder auf github hosten Ihren eigenen Server installieren und hosten .
  2. Am Anfang ist es besser, sich keine Gedanken über erweiterte Workflows zu machen, bei denen es um das Verzweigen und Ziehen von Anforderungen geht. Sie können beginnen, indem Sie git zentral verwenden (zittern!). Behandeln Sie Ihre gehostete Kopie als maßgebliche Kopie Ihres Quellcodes. Nennen wir dieses Repositoryupstream .
  3. Einer von euch schreibt den gesamten Code in ein lokales Git-Repository und schiebt ihn dorthin upstream Repository.
  4. Das andere Teammitglied kann dieses Repository klonen.
  5. Eine Reihe von Mindest Befehle müssen Sie lernen sind clone, pull, push, add, commit, log, status, diff, branch, stash, apply, reset, format-patch, branch. Weitere Informationen dazu finden Sie im Tutorial .
  6. Sie können nun einen beliebigen Teil des Codes bearbeiten. Machen Sie sich keine Sorgen, was passiert, wenn Sie beide dieselbe Datei bearbeiten. Git ist wirklich gut im Umgang mit Zusammenführungen und beim Beheben von Konflikten.
  7. Machen Sie kleine atomare Festschreibungen und schreiben Sie gute Protokollnachrichten . Verwenden Sie das Präsens für Festschreibungsprotokolle. Sie können beliebig viele Festschreibungen für Ihre lokale Kopie vornehmen, da dies keine Auswirkungen auf die Arbeit der anderen Person hat.
  8. Wenn Sie glauben, dass Ihr Code für andere freigegeben werden kann, veröffentlichen Sie ihn im upstreamRepository. Es empfiehlt sich, immer vor dem Schieben zu ziehen . Auf diese Weise halten Sie Ihr Repository mit anderen Änderungen synchron.
  9. Wiederholen Sie die Schritte 7und 8.

Sobald Sie mit diesem Workflow vertraut sind, können Sie sich mit weiterführenden Themen befassen, z.

Wenn Sie wirklich Codeüberprüfungen möchten, können Sie dies nur mit Git und E-Mail tun. Wenn Ihre Teamgröße über 10 hinaus wächst, ist dies idealerweise mit einer Art Online-Tool besser möglich. In der Praxis gibt es also viele Möglichkeiten, und dies ist nur eine einfache Möglichkeit:

  1. Erstellen Sie eine Reihe von Commits, mit denen überprüft werden soll git format-patch . Dadurch wird eine Reihe von Patch-Dateien generiert. Senden Sie diese Patches per E-Mail an den Prüfer.
  2. Der Reviewer kann die Patches mit anwenden git apply. Dies wendet den Patch an, erstellt jedoch kein Commit.
  3. Überprüfen Sie den Code und senden Sie eine E-Mail mit Vorschlägen.
  4. Wiederholen Sie 1-2-3, bis Sie zufrieden sind.
  5. Der Prüfer bestätigt, dass die Patches verschoben werden können upstream.
Ocaj Nires
quelle
Ich möchte dieser Liste auch Git-Rebase hinzufügen.
Alock27
1
Ich stimme nicht zu, dass dies stash, apply, format-patchTeil des Mindestwissens ist. Normalerweise warte ich ein paar Monate, bevor ich diese Dinge unterrichte. Ich würde vermuten, dass> 50% der Entwickler nicht versteckt sind.
Michael Durrant
1
Rufen Sie an upstream originund es wird Ihnen helfen, anderen Beispielen (die normalerweise verwendet werden origin) leichter zu folgen.
Michael Durrant
2

Ich benutze Github und all seine Funktionen dafür. Sieh es dir unter http://www.github.com/ an. So kannst du Zweige, Gabeln, Probleme und Pull-Anfragen verwenden, um mit deinem Partner zusammenzuarbeiten.

ben
quelle
0

Als erstes würde ich ein zentrales Code-Repository untersuchen, damit Änderungen zusammengeführt und zwischen Ihren beiden Projekten synchronisiert werden können. SVN ist ein guter leicht , dass ich in der Vergangenheit verwendet habe , und es ist schon lange genug , dass es ziemlich reifen SVN .

Danach würde ich zwischen Ihnen beiden die Rollen identifizieren, die einer von Ihnen spielen wird, dh

  1. Schreiben Sie die Funktionalität des Codes nacheinander oder führt eine Person Fehlerbehebungen durch, während die andere die Funktionen fortsetzt.
  2. Möchten Sie eine Reihe grundlegender Codierungsstandards erstellen, z. B. geschweifte Klammern, private Mitgliedsvariablennamen, Namenskonventionen für Variablen und Methoden (CamelCase usw.)?
  3. Wie oft müssen Sie einchecken? Ich würde mindestens einmal am Tag vorschlagen, um sicherzustellen, dass Sie beide sehen, was der andere besonders früh tut. Stellen Sie zwar immer sicher, dass der Code vor dem Einchecken erstellt werden kann.
  4. Er ist der Boss, aber wirst du der Programmleiter sein?

Viel Glück!

dreza
quelle
1
SVN ist eine anständige Option (und ich verwende sie derzeit bei der Arbeit) ... aber Git und Hg habe ich als etwas besser empfunden, da ich lokal festlegen kann (und zurückgreifen kann, wenn ich etwas Dummes getan habe), ohne andere zum Handeln zu zwingen (wenn sie svn aktualisieren) mit meinem Code, der möglicherweise nicht funktioniert. Ehrlich gesagt habe ich aus diesem Grund angefangen, Git im Büro zu verwenden, aber ich kann meine Änderungen immer noch mit git-svn
Ken Henderson,