Montag, 26. Januar 2009

Unser Projekt in Zahlen und Schlagworten

Eine Woche ist unser Projekt nun schon alt, und damit wohl auch wieder großteils in Vergessenheit geraten. Das Design ist übrigens natürlich überhaupt nicht geklaut, sondern wahrt nur die Corporate Identity!

Abschließend folgt noch eine kleine Statstik über die Verteilung der LOCs in den einzelnen Paketen:

PaketFunktionalitätLOC



ActionAnwendungsfälle (15 Stück!)490
ModelPlain PHP Objects (Attribute, getter, setter)320
Framework
560

Persistenz(230)

Presenter(120)

Controller(90)

Session Verwaltung (Authentication, Identity, Session)(120)
ViewHTML Seiten800



Summe
2170


Im Vergleich mit P3 und P5 sieht man sehr schön, dass die geplante Architektur eingehalten werden konnte und somit eine schöne Kapselung von Zuständigkeiten vorliegt.

Wer sich unser Projekt genauer ansieht, wird beispielsweise feststellen dass wir trotz Datenbank keine vordefinierten SQL Statements verwenden (ORM sei Dank :)). Den Source findet ihr als ZIP hier.

Hier ein paar inhaltsleere Schlagwörter (sinngemäß © Review-Partnerteam), die unser Projekt auszeichnen.
  • URL Rewriting
  • Front Controller
  • SQLLite DB
  • Objektrelationales Mapping (ORM)
  • Templatesystem mit Push und Pull - Ansatz
  • Intensive Singleton Verwendung
  • (Pseudo) Dependency Injection durch Abruf der Singleton Instanzen im Konstruktor der abhängigen Klassen und Referenzierung in privaten Klassenattributen.
  • Interfaces (Klasse Persistence), Abstrakte Basisklassen
  • Class Hints
  • Magische __get() Methoden (zB zur Auflösung von ForeignKeys in Objekte im Rahmen der ORM)
  • Reflection (zb beim Bau der SQL - Statements)
  • AJAX Anzeige freier Plätze (zwecks besserer Vorführbarkeit alle 2 Sekunden randomisiert zwischen 1 und 400)
Durch das mächtige Framework und die Abstrahierung kann sehr einfach produktiv an der Implementierung der Anwendungsfälle (Businees-Logik) gearbeitet werden.

Meine Teamkollegen hat es gefreut, umso mehr da sie zu Beginn des Semesters noch gar keine Ahnung von PHP hatten und durch Zurückgreifen auf bereitgestellte Kernfunktionalität nicht mit Low-Level-Implementierungsdetails überfordert wurden.

1 Kommentar:

Michael Derntl hat gesagt…

Ja das war eine feine Sache. Ich hoffe ich sehe morgen ähnliche Glanzstücke :-)