Ich bin ein Anfänger-Entwickler und habe mich von Anfang an gefragt, wie professionelle Tools wie GIT und Subversion (ich habe kein sehr gutes Verständnis für diese Tools) die Anforderungen ihres Projekts erfüllen können. Wenn sie es benutzen, wie würde ich so etwas einrichten?
Meine Bewerbungen sind nicht so groß und ich arbeite noch nicht in einem Team. Würden sie mir sehr helfen?
Auf dieser Website gibt es Fragen zur Verwendung der Tools, aber ich benötige Unterstützung für Anfänger.
version-control
git
svn
Wolfi
quelle
quelle
Antworten:
Die Quellcodeverwaltung ist allgegenwärtig - man könnte sogar sagen, dass Sie sich nicht als professioneller Entwickler bezeichnen können, wenn Sie sie nicht verwenden. Selbst wenn Sie sich alleine entwickeln, bietet die Quellcodeverwaltung noch einige Vorteile. Am Ende bietet es sowohl einen Verlauf als auch einen umfangreichen Rückgängig-Pfad. Sie können auch viel mehr experimentieren, da Sie sicher sind, dass Sie jederzeit zu dem zurückkehren können, was Ihnen zuvor gefallen hat, wenn Ihnen die neue Version nicht gefällt.
Trotzdem variieren die Workflows selbst innerhalb eines Versionsverwaltungssystems wie Subversion oder Git von Team zu Team erheblich. Der beste Ausgangspunkt ist wahrscheinlich, ein Versionsverwaltungssystem auszuwählen und sich mit dessen Standard-Workflows vertraut zu machen (im Kopf zu behalten, dass Sie während Ihres Berufslebens die Workflows wechseln müssen).
Für den Einstieg würde ich Git empfehlen. Ich bin ein Git-Fan, aber wenn Sie sich für Git entscheiden, können Sie zunächst ohne Server arbeiten und nur dann einen Server einrichten, wenn dies für Sie sinnvoll ist. Subversion erfordert andererseits einen Server, und das Einrichten eines Servers ist zwar nicht besonders schwierig, aber entmutigend, wenn Sie mit solchen Dingen nicht vertraut sind.
Hier ist ein guter Überblick über einige gute Faustregeln für die Quellcodeverwaltung im Allgemeinen: http://scottonwriting.net/sowblog/archive/2008/11/13/163320.aspx
Wenn Sie alleine arbeiten, benötigen Sie nicht viel Workflow. Früh festlegen, häufig festlegen. Wenn Sie mit der Einführung von Versionen beginnen, markieren Sie Ihre Releases. Erstellen Sie Zweige für Experimente oder lange abweichende Arbeiten (Git macht dies billiger und einfacher als Subversion).
quelle
Mit Quellcodeverwaltungssystemen (SVN, Git usw.) können Sie auf einer sehr vereinfachten Ebene den Änderungsverlauf von Dateien beibehalten. Auf diese Weise können Sie sehen, wie sich Ihr Code im Laufe der Zeit geändert hat, und Änderungen rückgängig machen, die Sie möglicherweise nicht möchten (z. B. funktioniert die Änderung nicht wie erwartet, Sie können den Code in einen zuvor bekannten Zustand zurücksetzen). Dies ist etwas, das selbst für Sie von unschätzbarem Wert ist, sobald Sie es verwenden.
Sobald Sie mit anderen Personen in einem Team zusammenarbeiten, erhöhen sich die Vorteile noch mehr, da mehrere Personen dieselbe Datei ändern können. Wenn die Änderungen nicht in Konflikt stehen (z. B. wenn zwei Personen unterschiedliche Abschnitte der Datei ändern), werden die Änderungen zusammengeführt automatisch. Wenn es Konflikte gibt, können Sie Ihre Änderungen neben Ihren Kollegen sehen und mit ihnen besprechen, wie die Änderungen zusammengeführt werden können.
Sie können auch Snapshots der Codebasis (normalerweise als Tag bezeichnet) erstellen, wenn Sie eine Version des Codes veröffentlichen, damit Sie Probleme problemlos beheben können, obwohl die Hauptquelle mit neuen Funktionen fortgefahren ist, die möglicherweise noch nicht veröffentlicht wurden.
Hier sind einige nützliche Ressourcen:
Starten und Ausführen von Subversion und Tortoise SVN mit Visual Studio und .NET
Versionskontrolle mit Subversion
quelle
Tutorials für Anfänger
Es gibt großartige Tutorials (Video und Text), die Ihnen helfen können, von einer sehr einfachen Ebene aus zu beginnen. Git scheint einen großartigen Ansatz zu haben, um das Thema für Anfänger auf sanfte Weise einzuführen. Er erklärt Ihnen zuerst das Warum und verwendet Wiederholungen, Definitionen und Grafiken, um sich an die Namen und Funktionen von Tastenbefehlen zu erinnern.
SVN
SVN sollte CVS besser gemacht werden. CVS (Concurrent Version System) arbeitete jeweils an einer Datei, SVN arbeitete normalerweise an einem Verzeichnis oder einer Verzeichnisstruktur. SVN (und CVS oder andere Systeme) können wichtig sein, wenn Sie es bei der Arbeit verwenden. Meiner Meinung nach verbessern wir jedoch alle paar Jahre unser Verständnis für die Quellcodeverwaltung erheblich, so wie Sie ein spätes Modell bevorzugen würden Computer sollten Sie ein spätes Modell Quellcodeverwaltungstool bevorzugen. Es ist eine enorme Investition, Systeme zu ändern, und der Codeverlauf kann verloren gehen, obwohl es für viele Systeme Konverter gibt, mit denen Sie Ihren Code sowie den Verlauf und andere Artefakte, die durch das System im Ruhestand erstellt wurden, migrieren können.
Professionelle Quellcodeverwaltung erfüllt professionelle Anforderungen
Ihre Frage "Wie setzen Profis Tools wie GIT und Subversion ein, um die Anforderungen ihres Projekts zu erfüllen?" hängt eng mit der Frage zusammen: "Wie arbeiten Teams zusammen, ohne sich gegenseitig in die Quere zu kommen, während sie noch so schnell wie möglich arbeiten?"
Der Code ändert sich häufig, da einige Entwickler Code erstellen, den andere Entwickler verwenden, und eine Vielzahl von Stakeholdern unterschiedliche Stabilitäts- und Innovationsniveaus benötigen. Versionsverwaltungssysteme helfen, indem sie Code zur Verwendung durch das Team speichern und jede Änderung im Kontext mit Versionen halten, die sich mit der Zeit ändern, und häufig auch mit Zweigen, die kontrollierte Kopien des Codes sind, die dazu dienen, Gruppen von Änderungen von anderen Gruppen von Änderungen zu isolieren.
Das Zusammenführen der Dinge und das Zusammenführen der Arbeit vieler Teammitglieder ist eine Aufgabe, die in SVN und älteren Systemen zentralisiert und schwierig war. Für Teams, die Git verwenden, wird das Zusammenführen einfacher und für den Einfluss des gesamten Teams zugänglicher als für einige wenige Experten. In SVN konnte das Verzweigen eine persönliche Angelegenheit sein, aber das Zusammenführen hatte oft schmerzhafte Auswirkungen auf das Team, und das Zurückschieben von Code in die Hauptzeile konnte unter dem Gesichtspunkt der Erlaubnis, der Vermeidung von Brüchen und des für die Aufgabe erforderlichen Aufwands schmerzhaft sein .
Über ein etabliertes Quellcodeverwaltungs-Repository können Fachleute andere Anforderungen erfüllen, z. B. die Diagnose von Problemen anhand ihrer Grundursache. Wenn es Versionen des Codes gab, die früher funktionierten, und neu gefundene Probleme, die in der aktuellen Version auftreten, ist es möglich, im Verlauf vorwärts und rückwärts zu gehen, um genau zu bestimmen, wann das Problem aufgetreten ist. In SVN ist diese Funktion noch nicht ausgereift, aber in Git wird die Suche nach der letzten funktionierenden / ersten fehlerhaften Version durch einen Befehl namens git bisect unterstützt. Das Problem wird durch eine der Quelländerungen zwischen den beiden Versionen verursacht, was möglicherweise eine viel einfachere Diagnose darstellt als eine Suche in der gesamten Codebasis.
Es tut uns leid, aber ich hoffe, dies hilft Ihnen auf Ihrem Weg zur Verwendung der Quellcodeverwaltung.
quelle
Mein Team verwendet ein selbst entwickeltes Team-Versionskontrollsystem. (Leider scheint Git noch nicht mit "nativen" IBM i-Quelldateien zu funktionieren.) Aber persönlich, nachdem ich die Quelle von diesem System abgerufen habe, verwende ich Git während meiner Entwicklung, bis das Projekt abgeschlossen ist und ich es wieder in die einchecke Team VCS.
Wie sie bei der Abstimmung sagen ... früh verpflichten, oft verpflichten. Während ich an neuen Funktionen arbeite, verpflichte ich mich. Ich verpflichte mich zwischen Kompilierungen und bei jedem Versuch, Compilerfehler zu korrigieren, jedes Mal, wenn ich während des Testens und Debuggens Änderungen vornehme. Dies macht es einfacher, mehrere Variationen eines Themas auszuprobieren und es bei Bedarf einfach wieder zu entfernen, insbesondere wenn eine Änderung über mehrere Dateien hinweg koordiniert wird.
Git hat meine Herangehensweise an die Entwicklung verbessert.
quelle