Ja, ich bekenne mich dazu, das abdriftende Thema noch weiter weggezogen zu haben
Ich versuch mal nicht zu ausführlich zu antworten: Ich verwende
Ruby on Rails. Ruby ist die Sprache an sich (objektorientiert, multiparadigmatisch), Rails das Framework darum (setzt
MVC um, erweitert Ruby nochmal ordentlich in Funktionalität).
Wenn ich jetzt eine Anwendung von Grund auf erstellen müsste, dann würde ich da so rangehen:
> rails new anwendungsname
Erstellt die komplette Verzeichnisstruktur für die Anwendung.
> rails generate controller Pages action_1 action_2 ...
Erstellt mir einen Pages Controller mit zwei Actions, meine ersten beiden Seiten (Views) sind somit auch schon fertig (incl. URL - kann ich über die Routes aber auch noch ändern), ich muss sie nur noch mit Inhalt füllen und ein Layout entwickeln.
> rails generate model User feldname1:typ1 feldname2:typ2 ...
Erstellt mir ein User Model mit zugehöriger Migration, um die Datenbank zu ändern. Wo und wie ich meine Benutzer mit ihren Daten ablege, ist auch schon erledigt. Ich muss noch
> rake db:migrate
ausführen, dann ist die Datenbank auch auf dem aktuellen Stand, enthält eine Tabelle
users mit den Feldern
feldname1 und
feldname2 mit entsprechenden Datentypen. Welche Datenbank das im Detail ist, ist mir relativ egal, da merke ich in meiner Anwendung keinen Unterschied.
Jetzt kann ich daran gehen, die Funktionalität der Webseite zu entwickeln - ich bin hier bereits am arbeiten - ohne mich mit unwichtigen Details wie der Datenbankanbindung oder Entwickeln einer Struktur für meine Seiten zu befassen, damit alles irgendwie einheitlich und übersichtlich bleibt.
Wenn ich die Anwendung dann später von meinem lokalen Entwicklungssystem auf den Server hochlade, muss ich nur noch dort
rake db:migrate ausführen, und das Datenbankschema entspricht dem korrekten Schema der Anwendung - ohne irgendwas in der Datenbank von Hand machen zu müssen, oder mich drum kümmern zu müssen, das ich nach Änderungen an der lokalen Entwicklungsdatenbank diese (nach dem Hochladen einer neuen Version) exakt auch in der Datenbank auf dem Server machen zu müssen.
Wenn ich ordentlich arbeite und vor dem Erstellen meiner Seiten und der Funktionalität
TDD anwende, habe ich sogar quasi automatisch meine Tests für die Anwendung mit geschrieben. Falls sich später irgendwann einmal etwas an meiner Anwendung ändern sollte, werde ich somit automatisch darüber informiert, wenn das vorhandene (und gewünschte) Funktionalität der Anwendung vernichten würde. Das passiert, ohne das ich jedes Mal hoffen (und evtl. testen) muss, dass meine Änderungen keine Seiteneffekte haben.
Ich hoffe, das waren jetzt nicht zu viele Fachbegriffe auf einmal
Freundliche Grüße
Stefan
PS: Wenn Interesse besteht, das noch weiter zu vertiefen, könnte man auch ein eigenes Thema draus machen.