Einzelnen Beitrag anzeigen

DasWolf

Registriert seit: 7. Jun 2016
75 Beiträge
 
Delphi 10.1 Berlin Professional
 
#17

AW: Datenbank Frameworks... Welche Vorteile bieten diese?

  Alt 28. Jan 2020, 09:13
Was (für mich) für ein ORM/DB Framework spricht:
- Datenbankunabhängigkeit - Dein ORM schiebt zwischen die DB und die Anwendung eine Schicht und dein Code funktioniert gegen mySQL und SQLite ohne Änderung.
- Du klebst beim Programmieren nicht mehr an Tabellen und Attributen, sondern arbeitest mit Klassen und musst dir über die Datenbank keine Gedanken machen
- Es gibt kein Herumgefrickle mit SQL Statements mehr
- Durch die Klassen erhälts du ein viel höheres maß an Testbarkeit und geringerer Abhängigkeiten
- Du entwickelst eine anderen Programmierstil, der nicht mehr an die Datenbank denkt.

Das ORM löst aber nicht alle Probleme:
- zumindest bei Aurelius gibt es (noch) keine Bulk-Operationen
- destruktive DDLs (Felder löschen) sind nicht möglich
- SQL ist Text und als solcher leicht persistierbar, bei einem ORM geht das nicht so leicht

Aber das sind lösbare Probleme. Die Lernkurve ist allerdings auch beachtlich, für mich hat es eine Weile gedauert, das Konzept zu verinnerlichen. An Stelle dass du mit SQL herumtust, baust du halt ewiglange Delphizeilen zusammen. Aber hier hast du die Fehlerprüfung halt überwiegend schon zur Compiletime + nicht erst zur Laufzeit. Ich habe TQuerys echt verinnerlicht + das Konzept wegbekommen dauert. Aber je länger ich mit Aurelius arbeite und Dinge ausprobiere, desto eleganter wird alles.

Ach ja: Das kommt auch immer: Performance ist kein Entscheidungskriterium pro/contra ORM. Der Overhead, den das ORM einführt ist zu vernachlässigen. ORM heißt Datenbank und da liegen Performanceprobleme ganz woanders.
Also die Nachteile der genannten Vorteile sind:
- Entwickelt man eine Datenbankanwendung und beschäftigt sich nicht mit der Datenbank, kann man gleich einpacken und bei Hello World Anwendungen bleiben
- Beschäftigt man sich nicht mit den Tabellen und kümmert sich auch nicht selbst darum, dann gilt genau das Erste
- Beschäftigt man sich nicht mit SQL, dann bleibt es mit dem Wissen über SQL beim "SELECT * FROM Tabelle".
- Ein Programmierstil, der bei einer Datenbankanwendung die Datenbank vergisst, ist für mich absoluter Mist.

Ein ORM bietet eine einfache Möglichkeit, sein Gehirn für Jahre nur auf 25% laufen zu lassen, zu entspannen und sein Level zu halten. Für Berufseinsteiger zum Beispiel ist das genau der Falsche Weg.
  Mit Zitat antworten Zitat