Zeitgleiches Arbeiten am Code mit mehreren Personen?

Ich und mein Kommilitone suchen nach einer IDE, mit der wir kollaborativ, gleichzeitig und unabhängig vom Verfügbarkeitsstatus eines Hosts arbeiten können.

Da die Voraussetzung für eure Hilfe ist, dass sich der Themenstarter darum bemüht hat, selbst eine Lösung zu finden, berichte ich folgend über meine Bemühungen:

Mit IDE IntelliJ haben wir unseren Bearbeitungsstatus in Github hochgeladen.
Der große nicht akzeptable Nachteil ist, dass uns nicht bekannt ist, dass mehrere Personen eine Codepassage gleichzeitig bearbeiten.
Beim Zusammenführen der Dateien muss entschieden werden, welcher Code übernommen werden soll.

Mit IDE Visual Code Studio können wir zwar Änderungen der anderen Person in Echtzeit sichten, aber der Zugriff auf die Daten ist nur möglich, wenn der Host online ist. Sollte der Host die IDE "VS Code" schließen haben alle anderen Personen keinen Zugriff mehr.

Ich bitte um Ratschläge / Vorschläge / Ideen bzgl. meines Gesuchs nach Etwas (z.B. ein AddOn, PlugIn, Tool, IDE, Web-IDE) mit dem kollaboratives gleichzeitiges Arbeiten an Java Code ermöglich wird (ohne die oben beschriebenen Einschränkungen).

Vielen Dank!
 

LimDul

Top Contributor
Du wirst da ein paar Dinge durcheinander.

Variante a) Zwei oder mehr Leute entwickeln gleichzeitig an einem Projekt. Dafür sind so Sachen wie GIT da. Das ist dann aber normal, wenn mehrere Leute die gleiche Codestelle bearbeitet haben, dass es Konflikte gibt, die gelöst werden sollen

Variante b) Zwei Personen entwickeln gemeinsam an einer Codestelle - Pair Programming. Dann ist es aber logischerweise notwendig dass beide gleichzeitig online sind. Da gibt es mehrere Möglichkeiten, von klassischen Screensharing Tools wie Teamviewer über Lösungen wie https://www.codetogether.com/ (da gibt es auch Plugins für die meisten IDEs).

Was genau willst du von diesen beiden Varianten?
 
K

kneitzel

Gast
Also noch als Ergänzung:
Mehrere Leute arbeiten an einer Code-Passage ist ein normales Pattern. Das Merging gehört einfach mit dazu.

Man hat diverse andere Ansätze wie z.B. das Locking. Das geht aber nur, wenn es einen zentralen Master gibt. SVN, TFS, ... Das wären so Kandidaten, die das auch unterstützen ...

Aber das ist eher unschön. Bei git gibt es das nicht, denn git kennt keinen zentralen Master. Git kennt einfach nur Repositories ...

==> Beschäftigt euch im Detail mit dem Thema Merging. Und das hindert euch natürlich nicht daran, eure Aufgaben so zu planen, dass es möglichst wenig gleichzeitige Änderungen gibt ...

Gleichzeitiges Arbeiten an Source Code wo der eine sieht, was der andere macht: Da gibt es tatsächlich auch diverse Lösungen zu, aber bei sowas greife ich am liebsten immer zu Screen Sharing. Denn es kommt regelmäßig dazu, dass man dann was anderes zeigen will. Wenn Du nur den Code siehst, dann kann ich bei einer Frage nicht schnell im Browser was zeigen und so ...

Und Lösungen gibt es genug ... gerade im privaten Bereich. Teamviewer, AnyDesk, ... das wären freie Lösungen. Aber auch Kommunikationslösungen wie Skype bieten da einiges ... Oder die typischen Online Meetings wie Google Meet, Webex, ....
 

LimDul

Top Contributor
Rand-Notiz: Dank Corona kam mir übrigens beim Pair Programming gar nicht mehr in den Sinn, dass man am besten gemeinsam an einem Rechner sitzt
 

White_Fox

Top Contributor
Aber das ist eher unschön. Bei git gibt es das nicht, denn git kennt keinen zentralen Master. Git kennt einfach nur Repositories ...
Git kennt aber das Cherry Picking. Gerade weil git nur Repositorys kennt, ist das behandeln gemeinsam bearbeiteter Codeteile umso wichtiger. Aber die unterschiedlich, möglicherweise durchaus gegensätzlich, bearbeiteten Codestellen wieder zusammenzuflicken ist sowieso eine Sache wo ich nicht sehe, wie man die automatisieren können sollte. Nehmen wir mal an, zwei Entwickler haben Passage a und b eingefügt, beide ändern den Wert einer Variable, die vorher schon da war. Welcher Abschnitt soll zuerst kommen, welcher als zweiter? Oder muß noch eine dritte Änderung (z.B. eine Kopie des Variableninhalts) eingebaut werden, um beide Passagen benutzen zu können? Das kann man nicht automatisieren, ohne daß der Computer Code verstehen und produzieren kann (aber dann bräuchte man die zwei Programmierer nicht mehr).

@beginnerproject
Du suchst keine andere IDE. Mach einfach mal folgendes: Öffne in der IDE deiner Wahl eine Datei, schreib was herein, und speichere sie. Während die Datei in der IDE geöffnet ist, nimmst ein anderes Programm (z.B. Notepad++ oder halt den nächstbesten Editor), öffnest die Datei ebenso (allein daß das überhaupt funktioniert, in früheren Zeiten hätte es eine Warnung vom Betriebssystem gegeben), schreibst irgendwas rein und speicherst. Anschließend siehst du dir die Datei wieder in der IDE an.
Bei jeder halbwegs modernen IDE sollte jetzt eine Meldung kommen, daß die Datei extern bearbeitet wurde, verbunden mit der Frage ob die Datei neu geladen werden soll.

Was ich damit zeigen will: Eine IDE ist vornehmlich ein Bearbeitungswerkzeug. Bearbeiten und Versionieren sind jedoch zwei verschiedene Dinge.

Ich würde es wie folgt versuchen: Vergeßt es, euch auf eine IDE zu einigen. Es hat sowieso jeder andere Vorlieben, und solche organisatorischen Dinge sind auch nicht unbedingt an eine IDE gebunden. Viele IDEs unterstützen z.B. auch eine individuelle Codeformatierung. Manche mögen es, mich aber macht es vollkommen wahnsinnig, wenn z.B. die öffnende '{' in einer neuen Zeile steht.
Und dann setzt euch einen Server auf oder nutzt einen Repositoryhost wie Gitlab. Git würde ich (auch wenn ich selber noch nie damit gearbeitet habe wie ich zugeben muß) bevorzugen, da es für solche Kollaborationen und nebenläufige Entwicklungsstränge ein paar nette Dinge anbietet. Es wird ja nicht umsonst z.B. in der Linuxentwicklung eingesetzt bzw. sogar dort entwickelt.
Jenkins würde ich mir auch mal ansehen. Ich habe bisher nur alleine programmiert, nie mit anderen zusammen, deshalb rede ich hier ein wenig wie ein Blinder von der Farbe.

Ich kann dir aber sagen, daß du da gerade ein sehr weites Feld aufmachen willst. Arbeitsabläude und deren Organisation sind Dinge, mit denen sich in großen Firmen ganze Abteilungen befassen. Und die klügste Entscheidung fordert auch hier Erfahrung und Kenntnis über Werkzeuge, deren Benutzung und das Vorhaben an sich.

Es gibt (für andere Bereiche als Softwareentwicklung) Systeme, da arbeitet man zwar normalerweise auf einer Datenbank, wenn diese jedoch nicht verfügbar ist hat man einen Snapshot des letzten bekannten Standes, mit dem man weiterarbeiten kann. Ich weiß nicht ob Jenkins so etwas mitbringt, aber es würde mich sehr wundern wenn es so etwas für SW-Entwicklung nicht gäbe. Das wäre das erste Mal, das Elektronik/Mechanik der Programmiererei mal irgendwo vorraus wären.
 

mrBrown

Super-Moderator
Mitarbeiter
Git kennt aber das Cherry Picking.
cherrypick ist aber noch mal was anderes, das ist ja ganz explizit kein Mergen der beiden gesamten Änderungen, sondern nur ein Auswählen eines einzelnen Änderung. Sollte man nur nutzen, wenn es sich nicht vermeiden lässt, für einen „normalen“ Workflow braucht man das eher nicht.


Es gibt (für andere Bereiche als Softwareentwicklung) Systeme, da arbeitet man zwar normalerweise auf einer Datenbank, wenn diese jedoch nicht verfügbar ist hat man einen Snapshot des letzten bekannten Standes, mit dem man weiterarbeiten kann. Ich weiß nicht ob Jenkins so etwas mitbringt, aber es würde mich sehr wundern wenn es so etwas für SW-Entwicklung nicht gäbe. Das wäre das erste Mal, das Elektronik/Mechanik der Programmiererei mal irgendwo vorraus wären.
ist doch das gleich wie git (und andere), nur in Grün mit mehr Magie und weniger Kontrolle?
 

8u3631984

Bekanntes Mitglied
Hallo zusammen,
ich verwende als IDE auch Intellij. Da wir auch Corona bedingt im HomeOffice arbeiten müssen, verwenden wir das Plugin CodeWithMe. Ich verwende allerdings die Ultimate Variante von Intellij. Kann als nicht sagen ob es auch mit der Community Version funktioniert
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
D Erste Schritte Sinvolle Architektur und paketübergreifendes Arbeiten Java Basics - Anfänger-Themen 2
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
F Arbeiten mit Arrays Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
P Erste Schritte Arbeiten mit Klassen Java Basics - Anfänger-Themen 8
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
G Graphische Darstellung (Arbeiten mit einem Window) Java Basics - Anfänger-Themen 1
N Mit der gleichen BlockingQueue in zwei Klassen arbeiten Java Basics - Anfänger-Themen 12
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
M Input/Output Arbeiten mit extrem vielen Dateien Java Basics - Anfänger-Themen 8
A Mit Enums in Methoden arbeiten Java Basics - Anfänger-Themen 8
D Wie mit Bibliotheken ohne API arbeiten? Java Basics - Anfänger-Themen 16
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
M Erste Schritte Arbeiten mit SuM (Stifte und Mäuse) Java Basics - Anfänger-Themen 20
S Arbeiten mit arrays Java Basics - Anfänger-Themen 4
D Arbeiten mit Twitter4J Java Basics - Anfänger-Themen 2
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
H Arbeiten mit Properties Java Basics - Anfänger-Themen 8
hdi Worst-Performance-Award für Arbeiten mit ListModel Java Basics - Anfänger-Themen 7
G Mit Javadoc arbeiten Java Basics - Anfänger-Themen 13
L Arbeiten mit Vectoren in einer Hashtable Java Basics - Anfänger-Themen 2
Y Mit Interface arbeiten Java Basics - Anfänger-Themen 9
G mit Threads arbeiten Java Basics - Anfänger-Themen 2
N Herangehensweise - mit vielen Variablen arbeiten Java Basics - Anfänger-Themen 6
M Arbeiten mit ArrayList Java Basics - Anfänger-Themen 9
G mit Strings arbeiten Java Basics - Anfänger-Themen 7
G in Java mit Schnittstellen arbeiten Java Basics - Anfänger-Themen 5
G Arbeiten mit einem Fenster Java Basics - Anfänger-Themen 11
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
G erstes Arbeiten mit Packages Java Basics - Anfänger-Themen 2
C Arbeiten mit MDI Java Basics - Anfänger-Themen 2
J Arbeiten mit Strings Java Basics - Anfänger-Themen 5
E Aus Datei einlesen und weiter mit arbeiten! Java Basics - Anfänger-Themen 15
Z In Bild-dateien(jpg) zeichnen und arbeiten. Java Basics - Anfänger-Themen 4
A Arbeiten mit mehreren Klassen Java Basics - Anfänger-Themen 4
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 2
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
I HTML Code säubern Java Basics - Anfänger-Themen 4
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
S Compiler-Fehler Nicht adressierbarer Code ( Non-addressable code ) Java Basics - Anfänger-Themen 5
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
A Code Problem Java Basics - Anfänger-Themen 6
C Fehler im Code Java Basics - Anfänger-Themen 10
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
L Ist der Code richtig Java Basics - Anfänger-Themen 3
josfe1234 code vereinfachen Java Basics - Anfänger-Themen 15
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
G Programm Code Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben