How-To: Handgefertigtes Bootstrapping & View Handling in WPF

Ich wurde per Twitter gefragt ob ich mir nicht ein wenig Quellcode einer WPF Applikation ansehen könnte um diverse Tipps zu dessen Verbesserung zu äußern. Statt aber nur aufzuzeigen was mir daran nicht gefällt, habe ich mich daran gemacht zu beschreiben welchen anderen Weg man gehen kann um mehrere Ansichten innerhalb einer WPF Anwendung zu verwalten und diese Anwendung auch noch korrekt zu initialisieren.

Weiterlesen »

„Ausprägungen des TDD“ aka „Die Triangulations-Baby-Step-Holzkeule“

Ich gebe gern zu, dass ich mich am Anfang eher schwer mit TDD getan habe. Der Grund dafür war, dass die Lehren die ich aus Büchern und Dojos zog, so gar nicht in meinen Entwickleralltag passen wollten. Kleine Umsetzungsschritte die nicht selten durch sinnlos scheinende Zwischenaktionen geprägt waren, haben mich fast zur Weißglut getrieben. Wenn ich dann TDD anwendete verzichtete ich also auf diese Schritte und fand mich nach einiger Zeit wiederum damit konfrontiert, dass meine Tests viel zu komplex wurden und die angeblichen Vorteile von TDD praktisch nicht präsent waren.

Weiterlesen »

Privates testen in dem es public wird…

Jedes Blog, in dem gelegentlich über Tests geschrieben wird und welches etwas auf sich hält, muss mindestens einmal etwas über das Testen von privaten Klassenmembern schreiben. Zugegeben in einem anderen Post habe ich bereits gezeigt wie das geht, nun habe ich aber endlich ein Praxisbeispiel an dem sich sehr gut zeigen lässt wann man evtl. einen anderen, sichereren Weg gehen sollte. Entwickelt man seinen Code tatsächlich mit TDD, sollte sich die Frage nach dem Test von privaten Membern eigentlich kaum stellen. Dadurch dass nur Code geschrieben wird, der auch durch Tests abgesichert ist sollten sich in jedem Fall genügend Vorbedingungen ergeben um auch jede private Methode irgendwie durch die öffentlichen Schnittstellen zu prüfen.

Weiterlesen »

Pattern, Clean Code & Prism – Vortrag an der HTW-Dresden vom 16.01.2012

Das Semester neigt sich dem Ende, die Vorlesungen sind fast alle gehalten und so ist jetzt eine gute Möglichkeit den Studenten ein wenig Wissen abseits des eigentlichen Lehrplans zu vermitteln. Dank Professor Nestler hatte ich auf diese Weise wieder die Möglichkeit einen Spezialvorlesung an der HTW-Dresden zu halten. Nach dem ich mich beim letzten Mal im Juni vor allem der agilen Entwicklung und dem automatisierten Test gewidmet hatte, ging es dieses Mal um Pattern, Clean Code und Prism.

Weiterlesen »

Warum ich „as“ nicht mag aber Exceptions liebe

Heute widme ich mich mal wieder zwei Bestandteilen von .Net die es schon sehr lange gibt und deren Nutzung als Grundlagenwissen zu verstehen sind. Da mir recht häufig der „Missbrauch“ dieser Dinge unterkommt, will ich hier die Vorteile und Nachteile etwas genauer beleuchten. Dabei geht es mir zunächst um das Schlüsselwort as und im Weiteren um Exceptions allgemein.

Weiterlesen »

Der testfreundliche Singleton – Versuch 2.0

Gestern habe ich bereits ein Post zum testbaren Singleton geschrieben, in welchem ich es mir zur Aufgabe gemacht hatte eine Möglichkeit zu finden Singletons so umzusetzen, dass sie möglichst einfach zu testen und ersetzen sind. Dies ist mir nur teilweise gelungen. Das erste System das ich vorstellte, erlaubte zwar ein Testen des Singletons, nicht aber den Austausch durch ein Fake-Objekt. Die zweite Fassung ermöglichte zwar das Ersetzen und Testen, war in meinen Augen aber zu aufwändig. Dazu kommt, dass beide Systeme dem Entwickler die Freiheit gewähren die tatsächliche Singleton-Funktionalität zu nutzen oder sich einfach selbst eine Instanz der Klasse zu erstellen.

Weiterlesen »

Das „Try-“ Pattern als Antwort auf „return null“

Eine Sache die mich seit meinen (wenig umfangreichen) C Tagen nervt, sind Methoden die null Werte im Fehlerfall zurück geben. Mag sein, dass dies in einer Parallelwelt ohne Exceptionhandling seine Berechtigung hat. In Zeiten von Java und .NET ist so etwas aber antiquiert. Ich weiß, dass sich schon eine ganze Reihe Blogs über das Thema ausgelassen haben, aber ich möchte an der Stelle einfach mal meinen Beitrag leisten, denn in meinem Arbeitsalltag stoße ich immer wieder darauf.

Weiterlesen »