Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/importoldchangelog/action.php on line 8

Strict Standards: Declaration of action_plugin_bloglinks::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/bloglinks/action.php on line 191

Strict Standards: Declaration of action_plugin_tag::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/tag/action.php on line 117

Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/importoldindex/action.php on line 57

Strict Standards: Declaration of action_plugin_discussion::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/discussion/action.php on line 1144

Strict Standards: Declaration of action_plugin_feedmod::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/feedmod/action.php on line 133

Strict Standards: Declaration of action_plugin_blockquote::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/blockquote/action.php on line 61

Strict Standards: Declaration of action_plugin_blog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/blog/action.php on line 171

Strict Standards: Declaration of action_plugin_include::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/include/action.php on line 142

Strict Standards: Declaration of action_plugin_openid::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /kunden/doogie.de/wiki/lib/plugins/openid/action.php on line 534

Warning: Cannot modify header information - headers already sent by (output started at /kunden/doogie.de/wiki/lib/plugins/importoldchangelog/action.php:8) in /kunden/doogie.de/wiki/inc/auth.php on line 313

Warning: Cannot modify header information - headers already sent by (output started at /kunden/doogie.de/wiki/lib/plugins/importoldchangelog/action.php:8) in /kunden/doogie.de/wiki/inc/actions.php on line 163
DoogiesWiki [blog:zukunft_der_anwendungsentwicklung]

Die Zukunft der Anwendungsentwicklung

Ich glaube, dass sich die Art wie Computeranwendungen entwickelt werden, in der nahen Zukunft sehr verändern wird. Vor langer Zeit einmal gab es monolitische Anwendungen - vielleicht sogar noch in Assembler geschrieben. Der gesamte Code in einer Datei. Moderne größere Anwendungen sind in voneinander möglichst unabhängige Module unterteilt. Üblich ist eine drei Schichtenarchitektur in der Art:

  • Frontend, GUI
  • Business Layer, Logik
  • Backend, Datenbank

Für die Erstellung eines Frontends und die Verdrahtung von Backend und Business Layer gibt es ausgereifte standard Libraries. Das Frontend folgt dem Model-View-Controller Design Pattern. Und die Datenbank wird über einen Entity-Relationship-Mapper auf Datenobjekte im Business Layer abgebildet. Diese beiden Patterns sind erprobt, ausgereift und funktionieren recht gut. Nur die eigentliche Logik in der Mittelschicht wird nach wie vor noch in "Spagetthi Code" gezwängt. Hier gibt es noch keine allgemein übliche Vorgehensweise.

Meiner Meinung nach sind Rule Engines genau der richtige Lösungsansatz hierfür. Hier betrachtet man die Business Logik nicht mehr als Code, sondern als reine Konfigurations Daten in strukturierter WENN-DANN-Form, z.B. "Wenn der Mietwagen fahrer älter als 25 ist, dann bekommt er einen Rabatt von 15%." Diese Regeln können sogar toolgestützt von einer Fachabteilung (in Textfiles) verwaltet werden. Diese Textfiles werden dann von einer RuleEngine eingelesen, validiert und können dann auf gegebene Facts (=einen gegebenen Mietwagenfahrer) angwendet werden.

Zur Laufzeit einer Anwendung können diese Regeln dann einfach verändert und neu eingelesen werden, ohne dass die RuleEngine dabei selbst angefasst werden muss. Die Business Logik wird einfach als reine Konfiguraitonsdaten betrachtet.

Siehe auch:

 
blog/zukunft_der_anwendungsentwicklung.txt · Zuletzt geändert: 30.03.2012 13:54 von doogie
Recent changes RSS feed Driven by DokuWiki