Projekt zu zweit programmieren, wie?
Hallo,
mein Freund und Ich, wir fangen gerade an Python zu lernen.
Jetzt ist die Fragen, wenn wir etwas zusammen Programmieren wollen, können wir dass irgendwie eine Datei so freigeben, dass beide gleichzeitig darin arbeiten können und der andere die änderungen auch sieht?
(Wir benutzen beide PyCharm)
Lg
7 Antworten
Dafür benutzt man eine Versionsverwaltung. Die meistverbreitete ist Git. Damit könnt ihr sogenannte Commits erstellen, eine Sammlung von Änderungen. Eine Reihe von diesen Commits gibt euch eine History.
Warum nicht ein Cloudspeicher? Ganz einfach: Wenn das ständig hin und her synchronisiert wird, gibt es
- zu viele Konflikte, Synchronisation stoppt
- die Änderungen werden direkt vollautomatisch in das Projekt des anderen synchronisiert, das kann zu unvorhergesehenen Problemen führen. Ihr fragt euch dann, warum etwas nicht mehr geht, obwohl es wegen Änderungen ausgelöst wurde, die automatisch Synchronisiert wurden
Dazu: Mithilfe von mehreren Branches könnt ihr einzelne Features getrennt voneinander entwickeln, sodass ihr euch nicht die ganze Zeit Änderungen hin und her schiebt.
Beachtet: Git ist nicht einfach so zu benutzen. Es gibt zwar GUIs (zum Beispiel in eurer IDE), trotzdem braucht ihr aber das Wissen.
Zum Üben kann ich euch diese interaktive Website empfehlen: https://learngitbranching.js.org/
Damit ihr euer Projekt auch untereinander austauschen könnt, braucht ihr einen Ort, um es hochzuladen. Github wäre ein guter Ort dafür.
Tutorials dazu, wie ihr Git mit Github nutzt, gibt es auch zu genüge.
Logo, ihr macht euch ein Repository z.B. auf GitHub und los gehts: https://legacy.thomas-leister.de/github-fuer-anfaenger-repository-anlegen-und-code-hochladen/
Ihr könnt gleichzeitig an den selben Dateien arbeiten, Commits mit entsprechenden Kommentaren machen (wer hat welche Änderungen gemacht), Reviews anfordern etc. etc. Einfach mal ein wenig einlesen oder auf YouTube Tutorials kucken.
Meine Güte die Antworten hier schon wieder. Hauptsache erst mal den einzig "wahren" Weg raus hauen aber dann auf die eigentliche Frage nicht eingehen.
Ich nutze kein PyCharm und kann dir daher keine konkrete Lösung bieten aber für andere Editoren wie VS Code oder Atom geht das auf jeden Fall über Erweiterungen. Bei Atom war es glaube ich sogar standardmäßig integriert und bei VS Code scheint es eine "Live Share" Erweiterung zu geben aber da ich den Editor auch nicht mehr nutze kann ich dir nicht sicher sagen ob das die beste Lösung ist.
Eine andere Möglichkeit ist so etwas wie Microsoft Teams zu nutzen, da können auch Leute über die Bildschirm teilen Funktion den PC remote steuern.
Ich würde also entweder fürs zusammen arbeiten einen anderen Editor oder Screenshare nutzen wenn ihr keine Erweiterung für PyCharm findet.
Und jetzt zu dem Teil den hier irgendwie keiner anspricht (abgesehen davon dass die eigentlich Frage nicht beantwortet wird):
Es gibt valide Gründe zusammen Code zu schreibenWorauf hier keiner eingeht ist wann und warum man Code zusammen schreiben sollte und wann nicht, weil es gibt eben doch valide Gründe zusammen an Code zu arbeiten. Was du möchtest ist kein valider Weg um permanent zusammen zu arbeiten. Da haben die anderen völlig recht, da nimmt man eine Versions Verwaltung. Was du beschreibst nutzt man aber sehr wohl zum lernen und wenn man ein Problem hat bei dem man alleine nicht weiter kommt. Oft schreibt hier allerdings eine Person den Code und der andere schaut zu und gibt Feedback oder Ideen und dann tauscht man auch mal.
Um effektiv zusammen arbeiten zu können will man aber eher nicht Zeitgleich an der selben Datei arbeiten wenn man nicht auch wirklich aktiv an der gleichen Sache zusammen arbeitet. Das funktioniert oft nicht gut weil man sich in die Quere kommt.
Wenn ihr beide nur temporär in einer Datei gleichzeitig arbeiten wollt dann gibt es ein Sessions Feature wo einer ne Session aufmachen kann der andere joined und dann seht ihr alle änderungen gegenseitig. Ansonsten falls das ganze etwas komplexer werden sollte schließe ich mich den anderen an und würde sagen um git kommt ihr nicht drum herum...
Würde von sowas eher abraten (für den Anfang) da ein hohes Risiko besteht, dass ihr so sehr unproduktiv arbeitet und ein Großteil der Zeit mit plaudern verbringt.
Ja meine es nicht so im Sinne von dass man Merge Konflikte hat beim Entwickeln, sondern es besteht halt das Risiko dass man mehr Zeit mit Spaß haben und reden verbringt, als das (durchaus anstrengende) Lernen einer Programmiersprache. Aus dem selben Grund rate ich auch eher zu einem Sachbuch als Youtube Tutorials.
Nicht unbedingt. Wenn man z.B. auf Github ein Repo mit zwei unterschiedlichen branches anlegt nicht unbedingt. Solange man nicht in eine einzige Datei zusammen comitten möchte.