Picture

Hi, ich bin Kevin Erath.

Ich bin von ganzem Herzen Software-Entwickler und meine Passion ist die Entwicklung nachhaltiger Software mit .NET.

Recursion

Neue Aufgabe, neues Glück. Warum also nicht mit glücklichen, äh, fröhlichen Zahlen weitermachen. Es gibt dafür sogar eine passende Function Kata. Eine fröhliche Zahl ist laut Wikipedia: “eine natürliche Zahl, die als Ausgangswert für eine bestimmte Iterationsvorschrift nach endlich vielen Iterationsschritten zu dem Zahlenwert 1 führt.”
Weiterlesen ...

Exceptions with Namespace

Vor kurzem habe ich mit Hilfe von Roslyn gezeigt, wie ein Quellcode nach Ausnahmen durchsucht werden kann. Hierzu habe ich den Syntaxbaum von Roslyn verwendet. Dieser liefert Informationen zum lexikalischen und syntaktischen Aufbau eines Quellcodes. Möchte man weitere Details über einen Syntaxknoten erhalten, so ist dieser aber nicht ausreichend. Im genannten Beispiel war es z.B. nicht möglich den Namensraum der geworfenen Ausnahmen zu ermitteln. Um an diese Informationen zu kommen wird das semantische Modell benötigt. Das semantische Modell wird von Roslyn während des Kompiliervorgangs erstellt.
Weiterlesen ...

Transfer

Weiter geht es mit dem nächsten Beispiel. In diesem Falle möchte ich eine Lösung für die Kata URL Splitting aufzeigen. Bei dieser Kata geht es darum eine URL in seine Bestandteile (Protokoll, Domain und Pfad) zu zerlegen.
Weiterlesen ...

Lines of Code

Neulich habe ich die Verwendung des Syntaxbaums von Roslyn anhand eines Beispiels gezeigt. Heute möchte ich den Syntaxbaum noch etwas detaillierter betrachten. Wie bisher gehandhabt, möchte ich das Ganze wieder mit einem kleinen Codebeispiel abschließen.
Weiterlesen ...

SKY

Neulich hat mich ein Student gefragt, was für mich derzeit die drei wichtigsten Prinzipien der Softwareentwicklung sind. Darauf gab ich ihm die Antwort, SRP, KISS und YAGNI. Im Gespräch kamen wir dann drauf, dass sich dies mit ‘‘SKY’’ sogar gut Abkürzen lässt. Der ein oder andere wird sich jetzt vermutlich Fragen, wieso ich nicht PoMO oder IOSP aufgezählt habe. PoMO und IOSP helfen einem SKY einzuhalten, aber daraus würde ich nicht ableiten, dass jeder Entwickler Flow-Design anwenden muss. SKY hingegen, sollte aus meiner derzeitigen Erfahrung heraus immer berücksichtigt werden, egal mit welchen Methoden oder weiteren Prinzipien man seine Software am Ende umsetzt.
Weiterlesen ...

Exception

Ziel des heutigen Posts ist es anhand einer kleinen Aufgabe das Verwenden des Syntaxbaums von Roslyn zu zeigen. Der Syntaxbaum ist eine Repräsentation des Quellcodes, in welchem alle verwendeten Schlüsselwörter hierarchisch abgelegt sind. Näheres zum Syntaxbaum kann in diesem Whitepaper nachgelesen werden.
Weiterlesen ...

Eva

Die letzten beiden Posts zu den beiden Prinzipien PoMO und IOSP waren eher theoretischer Natur. Deshalb möchte mich in diesem Post an einer weiteren einfachen Aufgabe probieren. Hierzu habe ich die beliebteste Aufgabe auf SPOJ (SPhere Online Judge) heraus gepickt. Bei der Aufgabe sollen Zahlen von der Konsole eingelesen und so lange auf dem Bildschirm ausgegeben werden, bis die Zahl 42 eingegeben wird.
Weiterlesen ...

Oblivion

Hier habe ich gezeigt, wie ich derzeit versuche Software aufzubauen. Dazu verwende ich Flow-Design. Und das nun seit mehr als zwei Jahren. Beim ersten Betrachten dachte ich, dass es sich hierbei nur um eine Variante der Strukturierten Analyse handelt. Steht doch bei beiden der Datenfluss und die Zerlegung in kleinere Teile im Vordergrund, aber bei Flow-Design geht es vor allem um das Thema Evolvierbarkeit.
Weiterlesen ...

Rosalinde

Die bisherigen Posts drehten sich eher um das methodische, weshalb ich dachte, dass es mal Zeit für etwas technischeres wird. Darum möchte ich eine kleine Serie zum Thema Microsoft Roslyn starten. Warum Microsoft Roslyn? Weil mich das Thema unheimlich interessiert.
Weiterlesen ...

Plan

Vor kurzem habe ich von einem Plan gesprochen, welcher einem bei der Umsetzung helfen soll. Aber wie kann dieser, für eine Programm wie RomanNumerals, aussehen?
Weiterlesen ...

Safety Net

Neulich habe ich zu mehr Evolvierbarkeit aufgerufen. Ich hatte dabei auch schon erwähnt, dass es wichtig ist, einen gesicherten Raum zu haben um freudiger auf das Thema Weiterentwicklung zu reagieren. Es ist nichts Neues, dass man hierfür am besten automatisierte Tests verwendet. Ein solches Sicherheitsnetz kann am besten mit Entwicklungsmethodiken wie TDD (je nach Sichtweise auch BDD) errichtet werden.
Weiterlesen ...

First Solution

Hier ein kleines C#-Programm das sich an der der Kata RomanNumerals orientiert. Sie basiert dabei auf dem zweiten Teil der Kata, bei dem es um die Konvertierung von römischen Zahlen in Dezimalzahlen geht.
Weiterlesen ...

Ivy

Bei der Gartenarbeit letzten Herbst, bin ich endlich auch mal dazugekommen den Efeu am “Tonnenhäuschen” zu schneiden. Also nicht das ich den Betonklotz schön finde, aber das Efeu wucherte doch schon wieder extrem stark und suchte sich bereits seinen Weg in Richtung Nachbars Baum.
Weiterlesen ...

Beginning

Jetzt überlege ich schon so lange auch mal einen Blog zu machen. Nach mehreren quasi unbenutzten Installationen von Wordpress und Co habe ich mich jetzt entschieden es einfach mal mit Jekyll zu probieren. Also Vorhang auf für den ersten wirklichen Versuch meine Gedanken und Erfahrungen in einem Blog zu verarbeiten.
Weiterlesen ...