• Blogroll

  • Überlegungen: “Code first” oder “Database first“ ?

    Von peoplepark | 25.Januar 2012

    Entscheidung

    Regelmäßig fragen sich Entwickler: „Womit fange ich an: mit der Datenbank oder den Objekten/Klassen?“

    Die Antwort fällt zumeist nicht leicht. – Und sie ist es auch nicht, denn es gibt gute Gründe für und gegen beide Ansätze.

    Wer schon länger Software entwickelt und auch mit der Zeit vor OOP vertraut ist, der wird erinnern, dass früher viele Anwendungen eine Sicht enthielten, die eng an die Struktur der dahinterliegenden Datenbanken gebunden war. Zu jeder Entität gab es i.d.R. auch ein passendes Formular. Der Ansatz “Database first“ war hier häufig zu finden, weil die Entwickler dachten, die Datenbank sei das Wichtigste – und somit zuerst umzusetzen. Durch den Einsatz von Tools, die in kürzester Zeit eine UI(User Interface) direkt aus der Datenbank erstellen konnten, schossen Lösungen wie Pilze aus dem Boden: Datenbank erstellen, Knopf drücken – fertig. Ein Paradebeispiel dafür ist Microsoft Access.
    Was dem Entwickler nur recht war, wurde beim Anwender aber regelmäßig teuer: die datengetriebenen Benutzeroberflächen spiegelten nur selten die fachlichen Anforderungen exakt wider. – Häufig fanden die Anwender ihre Anwendungen „irgendwie kompliziert“.

    Mit dem Ansatz “Code first” rücken die fachlichen Anforderungen des Anwenders in den Fokus: Der Entwickler entwirft mit dem Anwender eine Lösung, die exakt seinen Vorstellungen entspricht und leitet daraus zu einem späteren Zeitpunkt – für den Anwender meist verborgen – ein geeignetes Datenmodell ab. – Klingt vernünftig und leicht, birgt aber Risiken:
    Die logischen Datenstrukturen, die der Anwender haben möchte, weichen nicht selten von den physischen Datenbank-Strukturen ab. Das liegt daran, dass der Anwender natürlich nicht weiß, welche Strukturen aus Datenbanksicht sinnvoll sind. Die logischen Datenstrukturen des Anwenders kann der Entwickler jedoch selten unverändert in eine Datenbankstruktur übernehmen. Es müssen u.a. Normalisierungen vorgenommen und Performance-Aspekte berücksichtigt werden. Auch Schnittstellen zu Drittsystemen können Einfluss auf die Datenmodellierung haben. Damit Anwender- und Datensicht dennoch zusammen funktionieren, braucht es eine zusätzliche, vermittelnde Übersetzungsschicht. Das Ergebnis: Mit dem Ansatz “Code first” werden Anwendungen für den Anwender zwar bedarfsorientierter, aus Entwickler-Sicht i.d.R. aber mehrschichtiger und somit komplexer.
    Ein echter Vorteil für den Entwickler ergibt sich eher auf den zweiten Blick bzw. später: Die Mehrschichtigkeit führt zu Modularisierung und somit Entkopplung der Funktionalität. Resultat: Änderungen an der Datenbank resultieren nicht mehr in aufwendigen Anpassungen bis ins UI, sondern nur bis zur nächsten Anwendungsschicht. Und ganz nebenbei kann man ja auch mal über das Thema „Unit-Testing“ nachdenken…

    Wir so häufig muss man auch hier für die Wahl des richtigen Ansatzes die Anforderungen und Möglichkeiten im Vorwege genau abwägen, denn: DEN richtigen Ansatz gibt es eben nicht.
    In dem Sinn: „Happy Programming!“

    Share to Xing

    Themen: Allgemein, Trends & Entwicklungen | Kein Kommentar »

    Top-Job: Systemintegrator für Novell-Mailumgebung und Blackberry Administration (w/m) für Bonn

    Von peoplepark | 25.Januar 2012

    Systemintegrator für Novell-Mailumgebung und Blackberry Administration (w/m) für Bonn

    Dauer: 100 Personentage im Zeitraum vom 01.02.2012 – 29.06.2012

    Tägliche Arbeitszeit: im Rahmen eines 2-Schicht-Betriebes in der Zeit zwischen 07:00 Uhr und 18:00 (zu je 8 Stunden)

    Vertragsart: Freie Mitarbeit

    Ort: Bonn

    Das Unternehmen: Informationstechnologie

    Aufgaben/Anforderungen:

    Dieses Jobprofil passt wie die Faust aufs Auge? Dann klicken Sie hier für
    weitere Infos und Kontaktmöglichkeiten zum Top-Job .

    Share to Xing

    Themen: Top-Job | Kein Kommentar »

    Top-Job: Integration RSA Authentification Manager 7.1 (w/m) für Köln

    Von peoplepark | 23.Januar 2012

    Integration RSA Authentification Manager 7.1 (w/m) für Köln

    Dauer: ca. 5 Tage im Zeitraum 23.01.2012 – 17.02.2012

    Vertragsart: Freie Mitarbeit

    Ort: Köln

    Das Unternehmen: Informationstechnologie

    Aufgaben/Anforderungen:

    Dieses Jobprofil passt wie die Faust aufs Auge? Dann klicken Sie hier für
    weitere Infos und Kontaktmöglichkeiten zum Top-Job .

    Share to Xing

    Themen: Top-Job | Kein Kommentar »

    « Vorangehende Artikel