Was ist Dynamic Code Programming (DCP)?
DCP ist eine Dynamisierung von objektorientierte Programmierung (OOP) oder serviceorientierte Programmierung (SOP), beide Typen des Softwaredesigns können in DCP integriert werden. Grundsätzlich wird beim DCP bestehender Code modular von einem Controller geladen. Dieser Controller entscheided je nach Aufruf bzw. Parameterisierung, welche Module zu laden und evtl. zu instanziieren sind, bestimmt im Zweifel auch die zugehörigen Parameter für die Instanziierung bzw. den Aufruf der Methode oder der Software. Beim DCP gibt es keine statische Struktur, die definiert wie der Programmablauf auszusehen hat, vielmehr wird hier auf Basis einer Konfiguration und den Rückmeldungen der einzelnen Aufrufschritte dynamisch entschieden, welcher Schritt als nächstes durchgeführt wird. Jeder Schritt ist ein weiterer Zweig, der in den bisherigen Standards (OOP/SOP) fest verankert war. Beim DCP wird der Ablauf jedoch zum Beispiel in einer Konfigurationsdatei oder einer Datenbank festgehalten.
Ein einfaches Beispiel bei einer Webapplikation:
Es existiert eine Seite A, die als File auf dem Server liegt. In der Datenbank steht die Anweisung für den Controller, beim Aufruf von /index.html diese Seite zu laden und auszuliefern. Falls jetzt ein User einen Request auf /index.html absetzt, liefert der Controller die Seite aus.
Ändert man den Datenbankeintrag nun ab und setzt im Ablaufschritt 1 eine Userprüfung ein sowie als Failover für die Userprüfung eine Login-Seite, würde ein nicht angemeldeter User zunächst die definierte Login-Seite sehen und müsste sich anmelden. Schlägt die Anmeldung fehl oder ist der User nicht berechtigt, die Seite zu sehen, wird eine entsprechende Fehlermeldung ausgegeben und der User verbleibt auf der Login-Seite. Bei Erfolg sieht der User die angeforderte Seite.
Um Seiten nur für bestimmte User zugänglich zu machen, braucht man je nach Datenbankdesign und Codeaufbau nur noch einen Datenbankeintrag machen und muss nichts am eigentlichen Programmcode ändern.
Beispiel für eine Formulargenerierung:
Bei der Anwendung von DCP für die Formulargenerierung gibt es eine zugrunde liegende Datensatzstruktur und evtl. zusätzliche Parameter, die beeinflussen, wie das Formular später aussieht. Zusätzlich zur Datensatzstruktur gibt es bei Bedarf direkte oder sprachabhängige Übersetzungen, die genutzt werden um die Namen für die Eingabefelder sowie etwaige Zusatztexte zu definieren. Ausserdem wird über eine Typenzuordnung des Datentyps zum Formularfeldtyp entschieden, welche Art Formularfeld hier verwendet wird.
Im Falle der Definition der Datensatzstruktur in der Datenbank, würde man einfach die Zieldatentabelle als Grundlage nutzen. Auf diese Art und Weise kann man die Tabelle jederzeit anpassen und das Formular würde sich dann automatisch ändern sowie die neuen Daten damit abfragen.
Verfasser/Urheber: Stefan Vetter