Ich möchte verhindern, dass zwei Entwickler den gleichen Code gleichzeitig überarbeiten, ohne vorher darüber zu sprechen, wahrscheinlich mit einem Tool, vielleicht einem Eclipse-Plug-In. Kannst du helfen?
Wir haben 4,5 Millionen Codezeilen und mehr als 20 Entwicklerteams auf vier Kontinenten.
Idealerweise möchte ich, dass der zweite der oben erwähnten Entwickler bemerkt, dass jemand anderes an demselben Code arbeitet und mit dem ersten redet, bevor er etwas ändert.
Kennen Sie eine Lösung?
refactoring
Roger CS Wernersson
quelle
quelle
Antworten:
Viele Versionsverwaltungssysteme der zweiten Generation verwenden eine verbundene "Kasse", die den Server darüber informiert, dass Sie eine Datei ändern möchten. Beispiele hierfür sind TFS, SourceGear Vault und viele andere. Auf diese Weise können Sie Ihre Anforderung technisch erfüllen. Wie Adam Butler jedoch betonte, haben diese Tools ihre eigenen Probleme (ohne in eine lange Debatte zu geraten - eingeschränkte Unterstützung für Offline-Arbeit und allgemein kontraproduktiver Entwicklungsworkflow).
Ich würde definitiv einen hierarchischen Ansatz für die Aufteilung der Umgestaltungsarbeiten vorschlagen. Die Entwickler könnten logisch in Unterteams zusammengefasst werden, die jeweils für bestimmte Bereiche des Codes verantwortlich sind. Abhängig davon, wie Sie Teams strukturieren möchten, kann jeder eine Führungsrolle übernehmen, die für die übergeordnete Gestaltung des Teambereichs verantwortlich ist. Diese Struktur sollte den Entwicklern bekannt sein und die Kommunikation für das Refactoring vereinfachen. Ich bin mir sicher, dass dieser Ansatz für manche zu formal und zu rückständig erscheint, aber ich denke, es ist vorzuziehen, dass mehr als 20 Entwickler einen "Free for All" -Ansatz verwenden, um ein großes System umzugestalten. Einige Refactorings werden auf hoher Ebene stattfinden (zB wie wird Modul X mit Modul Y kommunizieren), In diesem Fall benötigen Sie Personen, die auf der entsprechenden Ebene telefonieren können. Nicht jeder Entwickler im Team sollte architektonische Entscheidungen treffen, daher wird fast auf jeden Fall eine Hierarchie auferlegt, auch wenn man sich dafür entscheidet, dies nicht zu beachten.
Grundsätzlich gibt es Tools, die die von Ihnen gestellten Grundanforderungen erfüllen, aber kein Tool wird die ordnungsgemäße Kommunikation ersetzen und eine kleine Anzahl von Mitarbeitern die allgemeine Architektur Ihres Projekts steuern.
quelle
quelle
Es gibt / gab Versionskontrollsysteme, mit denen Entwickler Code auschecken, bevor sie ihn bearbeiten können, aber diese haben ihre eigenen Probleme. Besser ist es, Entwickler dazu zu bringen, sich häufig zu verpflichten und zu aktualisieren. Ein Entwickler könnte dann eine Klasse als abgeschrieben markieren und festschreiben, wenn der andere Entwickler vor dem Starten seines Refactors aktualisiert, wird die Absicht erkannt.
quelle
Technologie kann soziale Probleme nicht lösen. Sie müssen Ihre Entwickler dazu bringen, miteinander zu sprechen und ihre Arbeit zu koordinieren. Bei 20 Teams sind einige Strukturen und Regeln unerlässlich. Sie werden sie mit technologischen Lösungen unterstützen wollen, aber die Menschen stehen an erster Stelle.
quelle
Wenn Sie
notice that someone else is working on the same piece of code and talk to the first one before modifying anything
wie gesagt abreisen , benötigen Sie ein Versionskontrollsystem (CVS / SVN / GIT). Ich bin mir zwar nicht sicher, aber wenn Sie das auch mit einbeziehen möchten, benötigen Sie einige fortgeschrittene Dinge (eine Art Auslösemechanismus / vielleicht eine benutzerdefinierte Sache).quelle
Entwickler, die Dateien in der Quellcodeverwaltung sperren, sollten Ihr Problem leicht lösen können, aber dann haben Sie möglicherweise größere Probleme.
4,5 Millionen LOCs sind ein riesiger Sandkasten, in dem Sie in einer gut strukturierten und designten Lösung nur selten auf eine Situation stoßen sollten, in der mehrere Entwicklerteams aufeinander treten. Die Tatsache, dass dies mehr als zufällig geschieht, weist auf einige schwerwiegende potenzielle Konstruktionsfehler hin, die untersucht werden sollten.
quelle
Ein paar Dinge:
quelle