Was ist Zeitgeist?<br />Und andere Erklärungen, was wir so in unserer Freizeit tun<br />
Lange Antwort<br />Die zwar kurz aussieht, aber eine lange Geschichte zusammenfasst<br />Anfang 2007 saß ich mit zwei Koll...
Kurze Antwort<br />Ich entwickle mit ein paar Freunden und Ex-Kollegen seit Anfang 2007 browserbasierte Onlinespiele und W...
Wozu das alles?<br />„Kann es sein, dass du zu viel Freizeit hast?“<br />„Weil ich es kann!“<br />Einmal Entwickler, immer...
Ziele des Frameworks<br />Was wäre, wenn ich mein ideales Framework zusammenstellen könnte?<br />Framework<br />
Ziele des Frameworks<br />Trennung von Framework- und Projektcode<br />Framework<br />Projektcode<br />
Ziele des Frameworks<br />Trennung von Projektcode und Präsentationsschicht<br />Framework<br />Projektcode<br />Präsentat...
Ziele des Frameworks<br />Transparenter Eingabefilter<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eing...
Ziele des Frameworks<br />Transparente Fehlerbehandlung<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Ei...
Ziele des Frameworks<br />Nachrichten- und Objektsystem<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Ei...
Ziele des Frameworks<br />Caching durch die Datenbank<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eing...
Ziele des Frameworks<br />Sinnvolle Ablaufsteuerung<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingab...
Was ist davon umgesetzt worden?<br />?<br />
Debugging-Klasse<br />Debug-Nachrichten<br />Fehlerbehandlung<br />Profiling(Code, SQL)<br />FunctionGuarding(Tracing)<br ...
Ablaufsteuerung<br />Der Eventhandler übernimmt die Ablaufsteuerung<br />Einzelne Aufgaben sind Aktionen<br />Aktionen sin...
Objekt- und Nachrichtensystem<br />Globale Nachrichtenklasse für Textnachrichten<br />Globale Objektklasse für beliebige O...
Eingabefilter<br />Eingabefilter für GET, POST und COOKIE<br />Wird zwingend vom Eventhandler aufgerufen bevor der Applika...
Nutzerverwaltung<br />Ein Benutzer hat Rechte für einzelne Aktionen<br />Rollen sind Sammlungen von Rechten<br />Projektab...
Konfigurationsverwaltung<br />Generisches System für Konfigurationen<br />Grundlage sind .ini-Dateien<br />Wird genutzt fü...
Sonstige Nettigkeiten<br />HTML Template-System, basierend aufDreamweaver-Templates<br />Datenserver (Events mit XML / JSO...
Ziele des Frameworks<br />Benutzbares Framework: check!<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Ei...
Zeitgeist<br />Schichtenmodell eines Zeitgeist-Projekts<br />Präsentationsschicht<br />Applikation – Module<br />Applikati...
Zeitgeist<br />Schichtenmodell eines Zeitgeist-Projekts<br />Präsentationsschicht<br />Applikation – Module<br />Applikati...
Best Practices<br />Durchgängiger Einsatz von PHPdoc<br />Unit Tests (SimpleTest, für Framework und Applikation)<br />Auto...
Tools<br />Aptana(PHP IDE)<br />Dreamweaver(HTML- / Templates)<br />MySQL GUI Tools<br />SVN + Tortoise<br />Serenity<br /...
Die bittere Pille<br />„Hey, wieso sehe ich noch nichts von dem Framework oder dem Spiel?“<br />Absolut kein Druck (Go Liv...
Sonst noch etwas?<br />Noch Fragen?<br />Blog: http://blog.zeitalter3.de<br />Mail: dirk@zeitalter3.de<br />Twitter: http:...
Nächste SlideShare
Wird geladen in …5
×

Was ist Zeitgeist?

413 Aufrufe

Veröffentlicht am

Ich entwickle mit ein paar Freunden und Ex-Kollegen seit Anfang 2007 browserbasierte Onlinespiele und Webapplikationen.

Das Herzstück dabei ist ein auf Basis von PHP selbst entwickeltes Framework, das uns bei der Entwicklung unterstützt (Zeitgeist).

Die Entwicklung (und anderes) wird auf unserem Blog www.zeitalter3.de dokumentiert.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
413
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Was ist Zeitgeist?

  1. 1. Was ist Zeitgeist?<br />Und andere Erklärungen, was wir so in unserer Freizeit tun<br />
  2. 2. Lange Antwort<br />Die zwar kurz aussieht, aber eine lange Geschichte zusammenfasst<br />Anfang 2007 saß ich mit zwei Kollegen meiner ehemaligen Agentur in einem Cafe und äußerte die dummen, wie auch folgenschweren Worte: „Lasst uns doch mal ein Browsergame schreiben“.<br />Retrospektiv etwas größenwahnsinnig, aber das kann auch mal gesund sein.<br />
  3. 3. Kurze Antwort<br />Ich entwickle mit ein paar Freunden und Ex-Kollegen seit Anfang 2007 browserbasierte Onlinespiele und Webapplikationen.<br />Das Herzstück dabei ist ein auf Basis von PHP selbst entwickeltes Framework, das uns bei der Entwicklung unterstützt (Zeitgeist).<br />Die Entwicklung (und anderes) wird auf unserem Blog www.zeitalter3.de dokumentiert.<br />Die nur so aussieht, als wäre sie länger als die Lange Antwort<br />
  4. 4. Wozu das alles?<br />„Kann es sein, dass du zu viel Freizeit hast?“<br />„Weil ich es kann!“<br />Einmal Entwickler, immer Entwickler<br />5-10 Stunden die Woche sind mehr als genug, um ordentlich Schaden anzurichten<br />Nur einmal Zeit haben das „ideale Framework“ zu bauen<br />
  5. 5. Ziele des Frameworks<br />Was wäre, wenn ich mein ideales Framework zusammenstellen könnte?<br />Framework<br />
  6. 6. Ziele des Frameworks<br />Trennung von Framework- und Projektcode<br />Framework<br />Projektcode<br />
  7. 7. Ziele des Frameworks<br />Trennung von Projektcode und Präsentationsschicht<br />Framework<br />Projektcode<br />Präsentations-schicht<br />
  8. 8. Ziele des Frameworks<br />Transparenter Eingabefilter<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />
  9. 9. Ziele des Frameworks<br />Transparente Fehlerbehandlung<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />Fehlerbehandlung<br />
  10. 10. Ziele des Frameworks<br />Nachrichten- und Objektsystem<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />Fehlerbehandlung<br />Nachrichten- und Objektsystem<br />
  11. 11. Ziele des Frameworks<br />Caching durch die Datenbank<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />Fehlerbehandlung<br />Nachrichten- und Objektsystem<br />Datenbank-Cache<br />
  12. 12. Ziele des Frameworks<br />Sinnvolle Ablaufsteuerung<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />Fehlerbehandlung<br />Nachrichten- und Objektsystem<br />Datenbank-Cache<br />Ablaufsteuerung<br />
  13. 13. Was ist davon umgesetzt worden?<br />?<br />
  14. 14. Debugging-Klasse<br />Debug-Nachrichten<br />Fehlerbehandlung<br />Profiling(Code, SQL)<br />FunctionGuarding(Tracing)<br />Applikationsabbild in der Datenbank speichern (Trace der Applikation z.B. zur Dokumentation von Fehlern)<br />
  15. 15. Ablaufsteuerung<br />Der Eventhandler übernimmt die Ablaufsteuerung<br />Einzelne Aufgaben sind Aktionen<br />Aktionen sind in Modulen gesammelt<br />Übernimmt Rechteverwaltung, Sicherheitsmaßnahmen und Konfiguration<br />Kann durch Nutzereingaben oder durch die Applikation angestoßen werden<br />
  16. 16. Objekt- und Nachrichtensystem<br />Globale Nachrichtenklasse für Textnachrichten<br />Globale Objektklasse für beliebige Objekte<br />Beide durch FunctionGuardingüberwacht<br />Können mit Typen versehen werden<br />Transparent in der Datenbank speicherbar<br />
  17. 17. Eingabefilter<br />Eingabefilter für GET, POST und COOKIE<br />Wird zwingend vom Eventhandler aufgerufen bevor der Applikationscode ausgeführt wird<br />Eingaben werden gegen Erwartungswerte geprüft (Regexp, Static, Auswahl an Typen)<br />
  18. 18. Nutzerverwaltung<br />Ein Benutzer hat Rechte für einzelne Aktionen<br />Rollen sind Sammlungen von Rechten<br />Projektabhängig frei definierbare Benutzerdaten<br />Stellt Funktionalitäten bereit (Login, Logout, Anmeldung, Ändern der Nutzerdaten, ..)<br />
  19. 19. Konfigurationsverwaltung<br />Generisches System für Konfigurationen<br />Grundlage sind .ini-Dateien<br />Wird genutzt für Modul- und Aktionskonfiguration, Eingabefilter, Lokalisierung, ..<br />Symbolische Links zwischen den Konfigurationen<br />Werden in der Datenbank gecached<br />
  20. 20. Sonstige Nettigkeiten<br />HTML Template-System, basierend aufDreamweaver-Templates<br />Datenserver (Events mit XML / JSON Output)<br />Datenbank-Abstraktion für MySQL<br />Formular-Handler<br />
  21. 21. Ziele des Frameworks<br />Benutzbares Framework: check!<br />Framework<br />Projektcode<br />Präsentations-schicht<br />Eingabefilter<br />Fehlerbehandlung<br />Nachrichten- und Objektsystem<br />Datenbank-Cache<br />Ablaufsteuerung<br />
  22. 22. Zeitgeist<br />Schichtenmodell eines Zeitgeist-Projekts<br />Präsentationsschicht<br />Applikation – Module<br />Applikation - Arbeiterklassen<br />Framework - Module<br />Framework - Kern<br />Datenbank<br />
  23. 23. Zeitgeist<br />Schichtenmodell eines Zeitgeist-Projekts<br />Präsentationsschicht<br />Applikation – Module<br />Applikation - Arbeiterklassen<br />Framework - Module<br />Framework - Kern<br />Datenbank<br />
  24. 24. Best Practices<br />Durchgängiger Einsatz von PHPdoc<br />Unit Tests (SimpleTest, für Framework und Applikation)<br />Automatisierte Applikationstests (Serenity)<br />Etwa alle 3 Monate 1 Monat nur für Refactoring<br />SVN („Check in earlyandoften“)<br />
  25. 25. Tools<br />Aptana(PHP IDE)<br />Dreamweaver(HTML- / Templates)<br />MySQL GUI Tools<br />SVN + Tortoise<br />Serenity<br />MS Office (Word, Excel, Visio)<br />
  26. 26. Die bittere Pille<br />„Hey, wieso sehe ich noch nichts von dem Framework oder dem Spiel?“<br />Absolut kein Druck (Go Live = „Whenit‘sdone“)<br />Der Weg ist das Ziel<br />Das alles könnte auch Vaporware sein, wer weiß?<br />
  27. 27. Sonst noch etwas?<br />Noch Fragen?<br />Blog: http://blog.zeitalter3.de<br />Mail: dirk@zeitalter3.de<br />Twitter: http://www.twitter.com/DirkSonguer<br />

×