Wie programmiere ich am besten mit einem Freund an einem Programm?

4 Antworten

Ihr wollt euch ein geeignetes VCS aussuchen, daß den Quellcode zentral verwaltet und zur Verfügung stellt.

Idealerweise braucht es ein Repository, das von allen Rechnern gleichermaßen nutzbar ist - das gibt es auch gehostet, wie z.B. bei github oder ähnlichen Anbietern.

P.S.: Es gibt auch Varianten wie hg (mercurial), die dezentrale Repositories unterstützen, anstatt lediglich einer Arbeitskopie - Allerdings wird dadurch die Nutzung mitunter komplizierter, zwei dezentrale und ein zentrales Repositoriy bei überlagernden Änderungen ist im Merging nicht mehr so trivial.

Die Standardlösung wäre git, die Alternativen wären eher Ausnahmen z.B. bei Gamedev nimmt man teilweise etwas anderes, oder ältere Projekte die mit anderen VCS angefangen haben.

Außerdem organisiert man sich über Issues, trennt den Code vernünftig, nutzt branches. Wenn man das sauber macht, dann kann man relativ gut zusammen asynchron arbeiten.

Issues bieten Git Weboberflächen/Hoster/Server wie GitHub oder Gitlab kostenlos an, bei selfhosting gibt es gitea.

Gegen aktuelles .net spricht nichts, wenn es auf mehreren Plattformen laufen soll. Musst eben nur etwas drauf achten, nicht hardcoded Pfade für Windows in deinem Code zu nutzen als Beispiel.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

Wo immer zwei oder mehr Personen gemeinsam Software zu implementieren haben – ein sog. Anwendungssystem AS – sind absolut notwendig:

  1. Ein Dokument "Anforderungsspezifikation". Darin muss beschrieben sein, welche Funktionalität AS aus Sicht seiner Anwender haben soll.
  2. Eine schriftlich dokumentierte Spezifikation des Datenmodells der Anwendung (mindestens hinsichtlich persistenter Daten).
  3. Schriftlich festgehaltener Komponentenentwurf (= Menge aller zu implementierenden Komponenten sowie der Schnittstellen, über die sie mit einander kommunizieren).
  4. Ein schriftlich fixierter Arbeitsplan, der festlegt, welche Komponente durch welche Person in welcher Programmiersprache (als Menge von Klassen im objektorientierten Sinne) implementiert werden soll.

Wichtig ist, dass sich das gesamte Team darauf einigt, diese 4 Dokumente bis hin zum Projektende voll aktuell zu erhalten in dem Sinne, dass sie

  • stets vollständig sind
  • und nie schon entstandenem Code widersprechen.

|

Wisse: Die Verwendung von Programmen wie MS Liveshare ( https://learn.microsoft.com/de-de/visualstudio/liveshare/faq ), wie jemand anderes hier vorschlägt, ist keineswegs notwendig, kann aber hilfreich sein, problemlos im Team zu kommunizieren, wo das notwendig ist. Das Erstellen oben genannter Dokumente wird dadurch aber auf keinen Fall überflüssig. Genau das ist vielen Anfängern viel zu wenig klar.

Als Programmiersprache C# zu verwenden (und .NET als Repository schon implementierter Hilfsfunktionalität) ist möglich und meist eine wirklich gute Idee.

1) VCS wie git

2) VS hat LiveShare, damit kann man gleichzeitig zusammen von unterschiedlichen Rechnern arbeiten.

Woher ich das weiß:Studium / Ausbildung – Ausbildung