Um die Anwendung von Änderungen in den ganz unten drunterliegenden Datensourcen zu ändern, gibt es verschiedene Wege.
Z.B. ein DAO Pattern. In meiner Hauptspielanwendung gibt es eine Reihe von Interfaces, in denen Methoden definiert werden, wie auf die Datenbank zu gegriffen wird. Ein Dao Pattern macht einen auch unabhängig davon, welche Datenbanktechnologie jetzt eingesetzt wird. D.h. man kann RDBMS durch Domino austauschen (zum Beispiel).
(z.B. updatePerson, updateMoneyPerson, insertPerson, selectPersonById, selectPersonByName, selectPersonByNameAndPassword, selectPersonsSortedByMoney, usw.)
Dann gibt es konkrete Klassen, die diese DAO Methoden implementieren. Diese benutzen SQL Befehle, die pro Interface in einer xml Datei stehen. Der konkrete Datenzugriff ist somit an einer klar definierten, leicht wiederzufindenen Stelle. Und alles läuft nach Schema-F und ohne ineffektive Kreativität. Für jede Methode des DAO Interfaces gibt es JUnit-Integrationstests. Dh.: Wenn sich etwas im Datenmodell ändert, rufe ich die Testsuite auf, die wiederum alle Testmethoden ausführt und dann bekomme ich gesagt, wo es knallt (Sofern meine Tests gut sind und sie sind es). Die JSPs greifen natürlich nicht direkt auf die DAOs zu, sondern sind nur für das Rendering der Html-Seite zuständig. Es gibt also noch eine Menge mehr. Eine Menge mehr.
Die ganze, nicht inkomplexe aber standardisierte und übersichtliche Infrastruktur wird von - hier - einer Menge openSource Frameworks unterstützt. Dh. die schwierigen Teile programmiere ich nicht selber, sondern ich baue auf der Arbeit von anderen auf.
Ich habe eine Reihe von gut orchestrierten Objekten mit klar definierten Verantwortlichkeiten. Dadurch lassen sich wirkliche Komplexitäten wie komplexere Transaktionen (ist eine Art Handelsplattform), Internationalisierung, unterschiedliche Clients, uvam leicht abfrühstücken.
Und das ist keine unnötige Komplexität sondern Wiederverwendung von Ideen of the human race.
Genau wie in Notes kann man eben in J2EE viel falsch machen, wenn man sich nicht entsprechend informiert. Ich persönlich mag auch moderne, auf J2EE aufsetzende "rebel frameworks" wie Springframework mehr als J2EE.classic. Sicherlich ist auch so etwas wie Ruby on Rails einen Blick wert. Nur ohne diesen Unterbau würde ich .NET programmieren.
Axel
Axel