In der letzten Woche habe ich intensiv an der App programmiert. Inzwischen kann Sie eine Verbindung zu Firebase (Datenbank) herstellen, Nutzer registrieren, einloggen und Passwörter zurücksetzten. Um soweit zu kommen, habe ich die überlebenswichtige Version Control genutzt. Doch bevor ich tiefere Ausführungen und Erklärungen zum Thema Version Control gebe, möchte ich einige Begriffe klarstellen.

Open Source

Version Control

Git

Github

Open Source

Bedeutet, dass der Code (einer Software) online komplett zur Verfügung steht und dass dieser von anderen Nutzer gegebenenfalls bearbeitet & weiterentwickelt werden kann.

Version Control

Ist für die Entwicklung ein grundlegender und äusserst wichtiger Bestandteil. Die Version Control Software (Versionsverwaltungsystem) speichert Änderungen am Code während der Entwicklung und macht diese nachträglich zugänglich. Zur Funktionsweise gleich mehr.

Git

Ist eine Version Control Software.

Github

Ist ein auf Git basierender Onlinedienst, der die Funktionalität einer (sonst lokalen) Version Control Software im Internet verfügbar macht.

Alle vier Begriffe haben eine starke Beziehung zueinander. Github bietet Open Source Repositories (= Dateien-Lager) an. Mit Hilfe der Version Control Software Git kann dieser Online-Dienst genutzt werden.

Ich werde Github für die Entwicklung von Apphoven nutzen. Die Vorteile liegen auf der Hand:

  • Fortschritt wird festgehalten, da Code kontinuierlich online gespeichert wird
  • Jederzeit alten (nicht mehr benötigten / gelöschten) Code revidieren
  • Grösstmögliche Transparenz (jede Zeile, jede Ziffer wird inkl. Datum & Urheber hochgeladen und ist für jeden ersichtlich)
  • Bei Problemen kann der Code einfach geteilt werden, andere Nutzer könnten mitentwickeln
  • Verschiedene Versionen-Zweige (Branches) können geführt werden (um beispielsweise experimentelle Funktionen isoliert (von der Hauptversion) zu testen.

Um nun Bezug zur Praxis herzustellen, möchte ich aufzeigen wie Ich Github für Apphoven bisher genutzt habe. Bevor ich mit der Programmierung anfing, habe ich auf Github ein Repository (= Daten-Lager, Onlineordner) erstellt und Git konfiguriert. Sobald ich etwas programmiert habe (und der Code funktionierte), habe ich einen Commit (verpflichtendes Datenpaket = neu programmierter Code) an meine Master-Branch (= Hauptversion) gesendet. Die Änderungen, welche ich lokal vorgenommen habe – also gelöschte & hinzugefügte Zeilen beim Programmieren – wurden per Git an Github gesendet. Dort sind die Änderungen nun online ersichtlich.

Um noch spezifischer aufzeigen zu können, wie ich Github nutze will ich meine aktuellen Fortschritte teilen.

In der letzten Woche habe ich an einer Login-Komponenten gearbeitet. Diese soll eine Verbindung zu Firebase (der Datenbank) aufbauen können, um Nutzer einzuloggen, zu registrieren und bei Passwortverlust einen Reset per Email anzubieten. Hierbei handelt es sich um gravierende Änderungen – meine Masterbranch (Hauptversion) enthält gerade nur das Grundgerüst der App. Daher entschied ich mich eine Branch (Versionszweig) anzulegen, den ich Firebase-Test nannte. In dieser Version meiner Repo (Repository) konnte ich mich austoben, Funktionen ausprobieren, Erweiterungen laden etc. Mit der Zeit nahm die Komponente gestalt an: Ich sortierte alle Dateien, entschied mich für eine Ordnerstruktur und dann war es soweit! Ein grosser Commit zur Firebase-Test Branch wurde abgesendet. Hierbei wurde der ganze neue Code auf Github geladen. Da mein Test nun zu Ende war, und die neuen Funktionen der App funktionierten, war es an der Zeit für eine Pull Request (zu Deutsch eine „Zieh-Anforderung“) an die Master-Branch. Die Firebase-Test Branch – einst wurde diese abgezweigt (und entwickelt) – verlangt somit eine Wiederaufnahme in die Master-Branch (Hauptversion). Diese habe ich natürlich bestätigt und somit waren die neuen Funktionen der Firebase-Test Branch auch in meiner Hauptversion verfügbar.

Pull-Request der fertiggestellten Firebase-Test Branch an die Master-Branch

Wer sich durch den Begriffs-Dschungel dieses Blogposts schlagen konnte, wird sicherlich verstehen, wieso Github ein solch wichtiges und wertvolles Werkzeug bei der Programmierung ist.

In Zukunft werde ich weiterhin Commits an mein Repository ApphovenAlpha senden. Wer ab und zu reinschauen will, was ich in letzter Zeit programmiert habe, kann dies gerne tun. Github ist relativ selbsterklärend:Wann & mit welchem Commit eine Datei zuletzt geändert wurde steht immer in der Dateiübersicht der Repo. Wenn man auf einen Commit klickt (z.B. „Major Update„), erhält man genaue Informationen. Grün hinterlegter Code eines Commits sind neu programmierte Zeilen Code, rot hinterlegte Zeilen wurden gelöscht.

Beschreibung der Änderungen
Anzahl geänderte Zeilen
Grün: Neue Gänsefüsschen, Rot: Gelöschte Gänsefüsschen

Nun wünsche ich viel Spass beim Erforschen meines bisherigen Fortschritts! Wie man schon dank dem letzten Commit (34264eb) erahnen kann, werde ich nächste Woche über ein neues Modul der App schreiben. Tick, Tack, Tick, Tack…

Github: apphovenAlpha