Tag archive: Kontrolle

Ein Notizbuch mit zwei vollgeschriebenen Seiten. Daneben eine Tasse Kaffee.

Sich selbst organisieren

Ich gebe es freiweg zu. Ich bin ein sehr chaotischer Mensch, der sein Leben einfach auf sich zu kommen lässt, nichts plant und vieles aufschiebt bis es fast zu spät ist. Um diesem Umstand etwas entgegenzuwirken schreibe ich diesen Artikel. Er soll mir dabei helfen Wege zu finden mein Durcheinander in geregelte Wege zu leiten.

Continue reading

Eine Säule inmitten eine Stadt mit der Aufschrift Subversión. Dahinter sind Gleise erkennbar.

Subversion – Was ist´s, was bringt´s?

Mal ganz ehrlich. Viele Programmierer fangen nach einer Idee direkt und ohne Umschweife das Schreiben ihres Codes an. Dabei entsteht ein ganzer Wulst an Funktionen und Logiken. Manche davon sind besser, andere schlechter und so wird von der einen Stelle zur anderen kopiert, gelöscht und neu geschrieben. Stellt man jetzt jedoch irgendwann einmal fest, dass die letzten Schritte nicht dem entsprechen, was man sich vorstellt macht man diese rückgängig. Ist das nicht möglich hat man ein Problem und muss versuchen sich das Geschriebene wieder irgendwie zusammenzureimen.

Dieses eben beschriebene Szenario kenne ich aus meiner eigenen Erfahrung nur allzu gut und hätte ich zu diesen Zeitpunkten Subversion eingesetzt, hätte ich mir einiges an Stress und Verkomplizierungen sparen können.

Was ist Subversion?

Subversion ist eine Software zur Versionsverwaltung. Mit ihr ist es möglich jederzeit nachzuvollziehen wer wann was an einer Datei geändert hat. Wird der Log richtig gepflegt wird auch sofort klar, warum die Änderung erfolgt ist. Abgesehen davon kann man mit Subversion nach einer fehlerhaften Entwicklung auch ältere Versionsstände, sogenannte Revisionen, wiederherstellen. Und zu guter letzt kann man mit diesem Tool noch fertige Release-Stände auszeichnen.

Subversion unterstützt also Entwickler nicht nur dabei ihren eigenen Code unter Kontrolle zu halten, sondern ist vor allem für Teams aus mehreren Entwicklern gedacht. Man hat die Möglichkeit, dass sich mehrere Personen die aktuelle Revision eines Projektes oder einer Datei herunterladen (Checkout), daran arbeiten und sie anschließend wieder hochladen (Commit) und somit eine neue Revision erstellen. Dadurch ist es möglich, dass mehr als eine Person an einer Datei arbeitet. Beim Commit werden die verschiedenen Codestände wieder zusammengeführt (Merge), selbst dann wenn von der aktuellen Datei schon eine neue Version existiert. Probleme treten nur dann auf, wenn an der gleichen Stelle im Code etwas geändert wurde (Conflict). Hier müssen sich die betroffenen Entwickler zusammensetzen und einen gemeinsamen Nenner finden.

Was bringt Subversion?

Alles bis jetzt geschrieben ist ja ganz nett und hört sich gut an, aber wo bleibt jetzt der praktische Nutzen von alldem?

Im Grunde genommen kann ich nur wiederholen, was bereits geschrieben ist. Subversion unterstützt Entwickler in der Kontrolle und Entwicklung ihres Codes. Nicht mehr und nicht weniger. Subversion ist keine eierlegende Wollmilchsau. Es hilft nicht dabei besseren Code zu schreiben. Es tut einfach das, was es kann und das ist verschiedene Entwicklungsstände zu speichern und zugänglich zu machen.

Allerdings kann Subversion bei richtiger Verwendung ein extrem mächtiges Tool darstellen. Und das nicht nur bei der Entwicklung von Software, sondern auch bei der Verwaltung von Dokumenten, Bildern, Musik, Videos, usw. Hier nehme ich einfach mal die Wikipedia als Beispiel. Jeder dort eingestellte Artikel besitzt verschiedene Versionen, z.B. der Subversion-Artikel. Anhand dieser Versionen kann weltweit jeder Interessierte nachsehen wann welche Änderung gemacht wurde und warum. Baut jemand Mist wird einfach eine ältere Version wiederhergestellt und schon geht es weiter. Der Nutzen bei Wikipedia sollte jetzt wohl jedem klar geworden sein.

Durch die Tatsache, dass man mit Subversion nahezu alles verwalten kann und das an einer zentralen Stelle wird das Tool erst richtig nützlich. Hierzu ein praktisches Beispiel aus der Arbeit. Ein Projekt steht an, an dem eine Person entwickelt. Gegen Ende des Projektes wird die Zeit üblicherweise etwas knapp und ein zweiter Entwickler steigt ein. Diese zweite Person muss jetzt nicht lange darauf warten, dass er den Code vom Kollegen geschickt bekommt, sondern kann sofort anfangen, indem er sich das Projekt auscheckt. Durch den Log kann er sich auch schnell über den aktuellen Stand informieren und direkt loslegen. Natürlich müssen sich die beiden Entwickler absprechen wer was erledigt. Die persönliche Komponente kann und darf nicht verloren gehen für den Erfolg eines Projektes.

Das war jetzt nur ein Beispiel von vielen Tausend, die man finden könnte, aber ich denke hierdurch ist zumindest ein Nutzen dieses Tools klar geworden. Wer noch Fragen hat kann diese gerne in den Kommentaren stellen

Ein Kind mit einer Spielzeugwaffe in der Hand. Dahinter sind noch weitere Spielzeugwaffen zu erkennen.

Waffen verbieten?

Um auch mal etwas zu den momentanen Diskussionen um die Verschärfung des Waffenrechts und zur Problematik mit Amokläufen zu sagen will ich jetzt einfach mal meinen Standpunkt zu diesem Thema niederschreiben.

Continue reading