Mein Entwicklungsworkflow

Heute möchte ich dir meinen - zugegeben etwas unkonventionellen - Workflow vorstellen, wie ich eine neue Website entwickle.

Alles fängt auf meinem Server an. Wenn ich den Namen des Projektes weiß, lege ich einen Unterordner in /var/www an, in den alle nötigen Daten (quasi) hineinkommen. In diesem Ordner gibt es dann immer einen weiteren Unterordner current und die Ordner mit den verschiedenen Versionen des Projektes. Der current-Ordner ist immer ein Symlink auf die aktuellste Version. Das ist übrigens auch eine sinnvolle Möglichkeit, um zB. Roundcube oder die OwnCloud zu aktualisieren.

Als nächstes trage ich im Apache den current-Ordner als neue Subdomain ein und lasse automatisch Zertifikats-Anfrage-Dateien generieren, mit denen ich dann manuell bei CaCert.org ein Zertifikat generiere und einfüge. Bis hierhin läuft alles automatisiert mit einem selbsterstellen Script ab, welches ich bei Interesse gerne zur Verfügung stelle.

Die Wolke kommt ins Spiel

Bis dahin sollte ja alles bekannt sein. Nun gehts zum interessanten Teil. Da meine Entwicklungsumgebung PHPStorm sich nicht so gut mit temporären Dateien versteht, wenn ich diese direkt auf meinem Server bearbeiten will, und das noch weniger, wenn ich mal mit Windows arbeite, lege ich mir einen neuen Ordner in meiner OwnCloud an. Vorteil ist, dass dieser Ordner auf allen meinen Geräten und meinem Server immer aktuell und offline verfügbar ist. Hierdrin bearbeite ich dann meine Dokumente. Auf meinem Server wiederrum verlinke ich den Ordner in der Owncloud als einzelne Version im Apache-Ordner. In dem OwnCloud-Ordner kann ich nun alles normal bearbeiten, die Dateien liegen ja auf meinem eigenen Rechner, gleichzeitig sind sie aber auch immer aktuell auf meinem eigenen Server, sodass ich sie von überall aus ansehen kann, ohne meinen Laptop dabei haben zu müssen. Der einzige, aber sehr kleine Nachteil ist, das es teilweise bis zu 5 Sekunden dauert, bis die Datei von der OwnCloud synchronisiert wurde und der Upload von größeren Dateien relativ lange dauert.

GitHub

"Aber GitHub ist doch viel besser als Entwicklungsbackend geeignet!!" mögen jetzt einige vielleicht schreien.

Ja, Git(Hub) ist gut geeignet, wenn man mit vielen Leuten an einem Projekt arbeitet oder eine ausführliche Versionierung benötigt. War bei mir aber bisher nie der Fall, also musste ich es auch noch nie einsetzten. Weiterhin ist der Nachteil, das man so den aktuellen Code nicht so gut testen kann, bei mir ist das nur ein F5 im Browser, mit Github sind es mindestens 3 Zeilen auf der Kommandozeile plus den Refresh im Browser. Wenn ich wirklich mal Projekte auf GitHub veröffentliche muss ich außerdem meistens eh irgendwelche API-Keys aus dem Code werfen. Dafür lege ich dann einen neuen Ordner an, der den Code (ohne den API-Key) enthält und pushe ihn dann jeweils immer hoch.

Mich würde jetzt nur noch interessieren, wie dein Workflow denn aussieht. Einfach in die Kommentare damit ;-)

Facebook Twitter Google+ WhatsApp

von Florian Schmidt

Gründer von Netzleben. Studiert IT System Engineering am Hasso-Plattner-Institut in Potsdam. Kauft viel zu viel Technik online ein. Liebt Kekse.

Hinterlasse einen Kommentar

Kommentare

Ben

Ohne git entwickle ich nahezu nichts mehr. Vielleicht ist es ein kleiner Mehraufwand immer erst die Änderungen committen zu müssen, aber das ist es absolut wert. Etwa wenn auf einmal der Code nicht mehr läuft ist es ein Befehl, um auf den letzten Commit zurücksetzen zu können. Das hat mir schon extrem viel Zeit gespart. Außerdem hab ich immer das Gefühl auch wirklich etwas geschafft zu haben, nachdem ich etwas commitet hab. Sonst hat man manchmal das Gefühl man arbeitet an irgendetwas, aber kommt einfach nicht voran.

Hierauf antworten

Janis

Ich entwickle auch nach vielen Erfahrungen nur noch mit Git. Dazu habe ich von Atlassian die Software SourceTree installiert, mit dem sich Projekte mit Git sehr gut managen lassen. Die Git–Komponente in Eclipse schalte ich komplett ab (Ich nutze also Eclipse als IDE). Gut ist auch mit Git das man Äste entwickeln kann, die man später auch wieder mergen kann. So mindert man das Risiko! Als Arbeitsverzeichnis wähle ich einfach ein Verzeichnis in meinem Lokalen Apache aus, so muss ich im Browser nur noch F5 drücken.

Das schlimmste was mir bisher ohne Git passiert ist, dass mehrere Personen an verschiedenen Projektversionen ohne Versionierungssoftware gearbeitetet haben. Das Projekt konnte man dann nur sehr aufwändig mit Hilfe von Diff/Patch wieder mergen.

Ich Stimme @Ben auch zu, mit einem Commit bekommt man das Gefühl, etwas geschafft zu haben :-)
LG

Hierauf antworten

Paul

Ich nutze Git auch immer! Egal ob ich alleine oder mit anderen zusammen an einem Projekt arbeite. Die Möglichkeiten die man mit seperaten Branches hast ist einfach viel zu wichtig. Außerdem kann man PhpStorm und Git ja super verbinden.

Warum machst du nichts mit node/npm? Das erste was ich bei einem neuen Projekt mache ist npm init um alle Bibliotheken die ich brauche immer als neueste Version zu haben und Updates lassen sich dadurch kinderleicht ausführen

Hierauf antworten