Type-First Development

Type-First Development

Ich schaue immer gerne, wie man in anderen Programmiersprachen idiomatisch Software entwickelt. Dieser Artikel von Tomas Petricek ist ein gutes Beispiel für ein mögliches Vorgehen in F#: Why type-first development matters (danke an Markus für den Link-Tipp).

F# ist eine funktionale Programmiersprache auf der CLR und bietet dem Entwickler viele „Kleinigkeiten“ an, die ihm das Leben einfacher machen. So gibt es z.B. die „Units of Measure“, mit denen man Zahlen eine Einheit – analog zu den z.B. aus dem Physikunterricht bekannten – geben kann. Eine Entfernung in Kilometern könnte z.B. so definiert werden: Distance : float<km>. Das hätte dem Mars Climate Orbiter wahrscheinlich das Leben gerettet 😉

Tomas beschreibt in seinem Artikel darüber hinaus aber ein ganzes Vorgehensmodell bei der Softwareentwicklung: Type-First Development. So nennt er den Fokus auf die Entwicklung des Datenmodells vor der Umsetzung der Programmlogik. Viele Denk- oder Verständnisfehler können dabei schon zu Beginn des Projekts verhindert werden, da man sich zunächst auf das Kernmodell der Domäne verständigen muss – und das sogar „typsicher“. Außerdem verhindert das vorgegebene Datenmodell einige spätere Fehler, da analog zur statischen Typisierung bestimmte Dinge bei der Programmierung einfach nicht mehr möglich sind.

Sicherlich bieten F# und andere funktionale Sprachen viele nützliche Konzepte, um das TFD umzusetzen, aber ich denke, das Vorgehen ist ohne Weiteres auch auf die eigene – wahrscheinlich objektorientierte – Sprache übertragbar. Es geht eher um die Denk- und Herangehensweise bei der Problemlösung. Deswegen finde ich den Artikel auch sehr spannend: er regt mich zum Nachdenken über meine eigene Programmierung an.


Was hältst du von der Idee des TFD? Arbeitest du vielleicht sogar schon mit einer funktionalen Programmiersprache?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax