Mittwoch, 15. Juli 2009

Clean Code Developer

Eine der ersten Folgen aus dem OpenSpace ist für mich, erneut über das Thema Clean Code Developer nachzudenken. Interessiert hat mich das Thema bereits vorher, aber ich bin kein Freund von Plastikarmbändern…

Viele der in CCD verankerten Prinzipien setze ich bereits um, aber ich werde natürlich auch im roten Grad anfangen. Dies hat einen einfachen Grund: ich will mich mit den Prinzipien und Techniken bewusst beschäftigen. Die meisten der im roten Grad angesprochenen Punkte laufen nebenher und werden im täglichen Doing nicht beachtet; und obwohl man sich doch “sowieso” an DRY hält, findet sich der Finger dann doch auf STRG+V wieder…

Also zurück zu den Plastikarmbändern: nein, ich mag immer noch keins tragen. Um meinen Fortschritt festzuhalten, werde ich stattdessen hier im Blog öffentlich reflektieren und meine durch bewusste Beschäftigung mit den Themen erlangten Erkenntnisse veröffentlichen.

Dienstag, 14. Juli 2009

Blog reaktiviert

Nach dem .Net OpenSpace Süd letztes Wochenende habe ich mich entschlossen, zusätzlich zu meinem englischen Blog wieder ein deutsches Blog zu führen.

Hier sind wir also. Nach über 1,5 Jahren wieder mal ein deutscher Post von mir.

Dienstag, 16. Oktober 2007

Projekte mit Subversion verwalten

Eines der wichtigsten Dinge bei der Erstellung von Projekten ist die Verwaltung der Source-Codes. Schließlich solen nicht nur mehrere Entwickler die Codebasis gleichzeitig bearbeiten können, es soll auch möglich sein, Änderungen rückgängig machen zu können, vor allem, wenn man sich bei großen Refactorings komplett verzettelt hat.

Ich benutze für diese Zwecke Subversion. Es ermöglicht die gleichzeitige Bearbeitung ohne das Sperren von Dateien und kann Änderungen nicht nur an Quelltexten, sondern an beliebigen Dateien und Verzeichnissen nachvollziehen. Zudem gibt es mit AnkhSVN und TortoiseSVN hervorragende freie PlugIns für Visual Studio und den Windows Explorer. Ausserdem gibt es ausführliche Literatur dazu direkt im Web und zum Herunterladen.

Beim Erstellen der Subversionrepositories hat sich bei mir folgende Strategie bewährt:
  1. Es gibt nur ein Repository
  2. Es wird nur ein Subversion-Projekt erstellt. Das vorgeschlagene Projektlayout mit den Verzeichnissen trunk, branches und tags wird in diesem Projekt erstellt.
  3. Jedes Projekt, an dem gearbeitet wird, erhält in diesem Subversionprojekt ein Verzeichnis, in dem die Solution gespeichert wird.

Jetzt sind alle Projekte in einem einzigen Repository und können in einem Rutsch vom Server geladen und committed werden. Ausserdem ist die Wiederverwendung von Code aus anderen Solutions einfacher: Wird jede Solution in einem eigenen Repository gespeichert, muss man immer Annahmen treffen, in welchen Order das Projekt auf dem Entwicklungsrechner ausgecheckt wird. So können die Pfadangaben stattdessen relativ erfolgen und es ist egal, wohin jeder Entwickler seinen Code lokal speichert.

Allerdings ist es wichtig, zur Erstellung von Releases jedes Einzelprojekts einen eigenen Codebaum für die Vorbereitung und spätere Pflege in branches anzulegen, um von Änderungen in anderen Projekten unabhängig zu sein. Das eigentliche Release wird dann als tag abgelegt. Das Procedere ist im SVN-Buch noch einmal genauer beschrieben.

Das hört sich alles kompliziert und aufwändig an, tatsächlich ist es aber die Variante, die am schnellsten zu Ergebnissen führt und trotzdem für stabilen Code sorgt.

Freitag, 12. Oktober 2007

ALT.NET oder was heisst ".NET anders" überhaupt

Worum geht es bei diesem Blog eigentlich? Hauptsächlich um die Programmierung in mit dem .NET-Framework. Das mache ich beruflich, zumindest so 75% meiner Zeit. Dabei lernt man natürlich dazu. Wenn ich an meine ersten Projekte mit .NET und VS 2005 zurückdenke, bekomme ich das kalte Grausen.
Und das ist der Grund für dieses Blog. Während meiner Entwicklerlaufbahn habe ich erfahren, dass die Microsoft-Tools mit ihren Designern und Codegeneratoren (und dessen Ergebnissen) einen ordentlichen Anteil daran haben, dass ich lieber die toten Mäuse unserer Katze wegräume als diese Projekte weiterzupflegen...
Daraus habe ich meine Konsequenzen gezogen und bei den letzten beiden Projekten das Castle-Projekt verwendet und bin begeistert. Die Entwicklung damit ist effektiv, interessant und macht Spass. Allerdings ist mir aufgefallen, dass es im deutschsprachigen Raum kaum Blogs oder Ressourcen zu dem Thema ALT.NET gibt.
ALT.NET ist ein Begriff aus dem Englischen und bezeichnet alternative Programmiermethoden mit dem .NET-Framework. Eine (wenn auch etwas überspitzte) Zusammenfassung in englisch findet sich im Blog von Roy Osherove. Eine weitere gute (englische) Anlaufstelle ist auch das Blog von Oren Eini alias Ayende Rahien.
Demnächst plane ich, an dieser Stelle vor allem Tipps und Tricks zum Themenkomplex ALT.NET zu veröffentlichen und vor allem, mich mit gleichgesinnten Entwicklern auszutauschen.