Seit fast 5 Jahren arbeite ich als Programmierer an eigenen und externen Webprojekten. Jedoch erst in diesem Jahr hat dies einen Umfang erreicht bei dem ich es als Selbstständigkeit bezeichnen würde. Der Sprung vom Hobby zum Beruf ist mehr als nur das Schreiben von Rechnungen. Einige zentrale Elemente aus dem Werkzeugkasten eines PHP-Programmierers habe ich lange vernachlässigt, was mir später teilweise auf die Füße gefallen ist.
Ich brauche keine IDE
Klar, zum Bearbeiten von Quellcode reicht Notepad aus. So ein bisschen Code-Highlighing wollte ich aber irgendwann doch und so habe ich nach kurzer Suche Notepad++ gefunden. Dabei handelt es sich um einen Quellcode-Editor, der sehr übersichtlich ist und wenig Ressourcen erfordert. Meine ersten Projekte mit dem PHP-basierten Zend-Framework ließen sich damit noch realisieren, aber als ich schließlich an einem Magento-Projekt mit mehreren zehntausend Dateien beteiligt war zeigten sich schnell die Grenzen.
Nun war es Zeit für eine professionelle IDE oder Integrierte Entwicklungsumgebung. Nach einem kurzen Test von Eclipse nutze ich jetzt Netbeans. Im Gegensatz zu Notepad++ sind hier die Tutorials notwendige Pflicht. Belohnt wird der Entwickler mit der Live-Validierung des Codes (nie wieder ein Semikolon vergessen), der Navigation durch tief verschachtelte Klassen- und Ordnerstrukturen (4 Ordner zurück und 5 nach vorne oder nur ein Klick) oder Erläuterungen zu einzelnen Funktionen. Die Liste der Möglichkeiten ist lang und ich stehe selbst noch am Anfang. Der Nachteil: die genannten Programme sind sehr speicher- und performancelastig. Dennoch: die Vorteile überwiegen.
Wer jedoch eher mit Weblayout arbeitet und kaum über HTML, CSS und einfache PHP-Schnipsel hinaus kommt, dem reicht Notepad++ definitiv aus.
Ich brauche kein Repository
Innerer Monolog: Das ist nur ein kleines Projekt. Da lohnt sich also die externe Sicherung der Dateien nicht.
Realität schlägt zurück: wieso ist die Datei jetzt leer?
So oder so ähnlich ging es wohl vielen schonmal. Ein Projekt kann gar nicht zu klein sein um nicht Daten zu haben, die verloren gehen können. Dennoch verzichte ich noch viel zu oft auf ein Repository. Für die, die es noch nicht kennen und unbedingt kennen sollten: ein Repository ist der zentrale Ablageort für Quellcode inklusive Versionsverwaltung. Besonders bei umfangreichen Projekten mit mehreren beteiligten Programmierern ist der Einsatz unumgänglich. Kurz gesagt kann sich dort jeder den aktuellen Quellcode besorgen bzw. den neuen Quellcode hochladen. Integrierte Tools erleichtern die Auflösung von Konflikten einzelner Versionen des Codes oder deren Wiederherstellung. Wer jedes neue Feature in eine eigene Revision packt, kann bei Problemen sofort den vorherigen Zustand wiederherstellen.
Ich nutze ein auf SVN basierendes Repository das neben Git zu den am meist verbreiteten Systemen gehört. Ich richte es mir für alle Projekte ein, die aus mehr als einer Datei bestehen, selbst wenn ich nur allein daran arbeite. Neben einem zusätzlichen Backup kann ich so Versionen miteinander vergleichen, mir Notizen zu Änderungen machen oder bei Bedarf einem Kollegen den Zugang zum aktuellen Code freigeben.
Ich brauche keine Shell
Als ich meinen ersten PC mit MS DOS erhielt, gehörte die Eingabeaufforderung oder auch Shell zum zentralen Anlaufpunkt. Nach Jahren Windows muss ich mich erst wieder an sie gewöhnen. Gerade wenn es um die Betreuung von Servern geht ist sie unerlässlich. Häufig stoße ich auf Lösungen von Problemen, die auf Shell-Befehlen basieren, die anders kaum ausführbar sind.
Das Problem: mein aktueller Rechner ist ein PC mit Windows XP. Dieses hat zwar auf dem Papier eine Eingabeaufforderung, deren Funktionalität ist jedoch sehr stark gestutzt und weit von der Praxis entfernt. Bisher kam ich mit diversen Erweiterungen (z.B. TortoiseSVN für das Repository) oder ein paar Kniffen auch so zurecht, aber langsam wird es lästig. Nach einigem Schwanken und Gesprächen mit Kollegen habe ich mich entschieden, dass der nächste Rechner ein Mac sein wird. Aufgrund der aktuell begrenzten Ressourcen, muss diese Investition jedoch noch bis ins nächste Jahr warten.
IDE, Repo und Shell sind die drei Werkzeuge, die ich bisher stark vernachlässigt habe. Wie sieht es bei euch aus?