login
english

Das MVC-Modell und unsere Software

Das MVC-Modell (Model-View-Controller) sollte Grundlage jeder Entwicklung sein. MVC bedeutet eine Untergliederung des Softwaresystems in die drei Teile: Datenmodell (engl. Model), Präsentation (engl. View) und Programmsteuerung (engl. Controller). Das Model enthält dabei die darzustellenden Daten, der View ist für die Darstellung verantwortlich und der Controller beinhaltet alle Funktionalitäten. Das MVC-Modell trägt somit dem menschlichen Drang nach Gliederung in Sinneinheiten unmittelbar Rechnung. Durch Einhaltung der MVC-Gliederung ist es dem Entwickler möglich, den Code stringenter zu verfolgen, auszubauen und zu bearbeiten. Das MVC-Modell mit seinen 3 Schichten ist beliebig erweiterbar, das heißt der Controller kann beispielsweise in weitere Sinneinheiten eingeteilt werden.

Wir bedienen uns dieses Modells, um unseren Code klar und übersichtlich nach funktionalen Aspekten zu unterteilen. Zudem garantieren wir auf dieser Grundlage ein flexibles Programmdesign, dass Erweiterungen ohne Probleme ermöglicht und die Wiederverwendbarkeit der einzelnen Komponenten sicher stellt.

Model

Das Herz einer jeden Software ist die Datenbank (Model). Sie enthält alle Daten, die für den reibungslosen Ablauf eines Programms notwendig sind. Bevor ein Programmierer auch nur eine Zeile Code schreibt, muss er sich jeder einzelnen notwendigen Angabe bewusst sein und diese in die Datenbank implementieren.

Da trotz des objektorientierten Programmierstils Datenbanken in der Regel relational angelegt werden, ist es zusätzlich notwendig, ein Object-Relational-Mapping (ORM) zu implementieren, um objektorientierte Daten auf relationale Daten und umgekehrt abzubilden. Das Framework Propel ist in dieser Hinsicht eine gute Möglichkeit, Objekte aus der Structured-Query-Language (SQL) sprechenden Datenbank heraus zu generieren. Neben dem ORM sollte ein Database Abstraction Layer (DBAL) installiert werden. Ein DBAL wie Creole, PDO oder AdoDB ist ein Interface, was die verschiedenen SQL-Dialekte der einzelnen Datenbanken wie Oracle oder MySQL standardisiert und an den ORM weiter gibt. Eine manuelle Anpassung muss der Programmierer dadurch nicht mehr vornehmen, sondern wird automatisch erstellt. Durch ORM und DBAL verkürzt sich der Code wesentlich, wodurch sich die Entwicklungszeit massiv verringert. Zudem entfallen Fehlerquellen durch die automatische Erstellung der Klassen und Objekte und durch die automatische SQL-Übersetzung.

View

Neben der Datenbank ist das Layout und Design ein entscheidendes, nichtfunktionales Element einer Software. Der View ist es meist, der über das weitere Nutzungsverhalten der User entscheidet. Finde ich eine Software optisch ansprechend, bin ich gespannt auf sie, nutze sie. Ist sie hingegen langweilig oder nicht ausreichend durchdacht, ist bereits der erste Kontakt mit der Webanwendung, dem Onlineshop oder dem Portal negativ belastet.

Es ist prinzipiell ratsam, mächtige Javascript-Bibliotheken für die Realisierung von AJAX-Funktionalitäten zu nutzen. Die jQuery Libary stellt Klassen zur Verfügung, DOMs (Document-Object-Model) zu navigieren und zu manipulieren. jQuery ermöglicht es, nahezu kein Javascript im Body ausführen zu müssen, wodurch der HTML-Code sauber bleibt. Die Javascript-Elemente, die mit jQuery generiert werden, sind durch die Trennung vom HTML leichter zu warten. Prototype ist eine weitere Javascript-Bibliothek, die zur Gestaltung dynamischer Webanwendungen genutzt werden kann. Mit Prototype ist es möglich, objektorientiert in Javascript zu programmieren, DOM-Manipulationen, AJAX-Zugriffe sowie die dazugehörigen Effekte sind damit sehr übersichtlich, zeitsparend und prägnant programmierbar. Auf Basis von Prototype wurden eine Reihe weiterer Hilfsmittel geschaffen, die bei mancher Entwicklung hilfreich sind.

Controller

Der Controller ist schließlich der Teil der Entwicklung, der einem Projekt Leben einhaucht. Er bestimmt über alle auszuführenden Methoden, er sorgt nicht nur für einen sauberen Ablauf des Programms, er ist der saubere Ablauf. Damit er jedoch zu diesem werden kann, muss sich der Programmierer vor der eigentlichen Entwicklung anhand der vorgegebenen Funktionalitäten alle benötigten Komponenten und ihr beabsichtigtes Zusammenwirken klar machen. Dabei muss stets auf eine bestmögliche Wartbarkeit, Modifizierbarkeit, Sicherheit und Performanz geachtet und diese Faktoren zu obersten Prämissen bei der Modellierung der Software gemacht werden. Im Hinblick auf die Qualitätssicherung ist es ratsam, ein globales Messaging- und Logsystem und ein zentrales Anzeige- und Actionmanagement anzulegen. Erst wenn die grundlegenden und für die weitere Pflege wichtigen Dinge erledigt sind, geht es an die Entwicklung. Dabei sollte man prinzipiell zunächst ein Skelett aus Klassen und Objekten ohne Funktionalitäten aufsetzen und erst wenn dieses fehlerfrei läuft, es mit Leben füllen und alle notwendigen Funktionalitäten in die Klassen und Objekte implementieren .