empros gmbh - process & information management services
1009-chatExperience is the hardest kind of teacher.
It gives you the test first and the lesson afterward.

-Susan Ruth

Metaprogrammierung

Heuristik

Lege Abstraktion in den Code und Details in die Daten.

Erklärung

Die Trennung des Was (Schnittstelle) vom Wie (der Implementierung) findet in dieser Faustregel ihre konsequente Fortsetzung:

Die Programmlogik beschreibt das Was und abstrahiert dabei vom Wie, welches mit Hilfe von (Meta-)Daten beschrieben wird, die ausserhalb der compilierten Anwendung liegen. D.h. wir programmieren den allgemeinen Fall und legen die Beschreibung der spezifischen Details möglichst vollständig in die Daten.

Dies hat mehrere Vorteile:

  • Durch die konsequente Trennung des Was vom Wie wird die Koppelung in einem Entwurf verringert. Die Software wird flexibler und anpassungsfähiger.
  • Anwendungen lassen sich ohne Neukompilation an sich ändernde Anforderungen anpassen.
  • (Meta-)Daten lassen sich meist näher an der eigentlichen Problemstellung strukturieren und beschreiben. Das gibt uns z.B. die Möglichkeit, unsere Endkunden direkt am Erstellungsprozess der applikatorischen Details zu beteiligen.
  • Im Idealfall lassen sich unterschiedliche Projekte mit Hilfe der gleichen Software aber unterschiedlichen (Meta-)Daten umsetzen.

Bei dieser Art der Programmierung gilt es zu bedenken, dass es sich auch bei den (Meta-)Daten um eine Art von Programm handelt bzw. um einen bestimmten Teil davon. Damit besteht die Notwendigkeit, diese Daten als deklarative Programmelemente genauso sorgfältig zu testen wie herkömmliche Programme in einer Programmiersprache. Diese Aufgabe ist je nach Komplexität der (Meta-)Daten alles andere als trivial (siehe hierzu auch den nemos log Eintrag Metaprogrammierung).