Benutzername    Passwort    Autologin    
  Passwort vergessen       Registrieren  
beeForum Foren-übersicht » hal9000
Neues Thema eröffnen   Neue Antwort erstellen Hervorhebung entfernen


DLW 2008: Aspect-Oriented Prog. and Dependency Injection
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
boris



Beiträge: 11154

Titel: DLW 2008: Aspect-Oriented Prog. and Dependency Injection
Verfasst am: Sa, 18 Apr 2009, 10:17
Beitrag
Antworten mit Zitat

Aspect-Oriented Programming and Dependency Injection

Robert Lemke, Typo3 Association (Flow3)
27.5.2008, 16:00, Raum 1.31, ca. 20 Personen

  • Dependency Injection (DI)
    Minimiert die Abhängigkeit zwischen Komponenten und Objekten in objektorientierten Systemen.
    Eine Klasse holt sich z.B. eine Instanz nicht (mehr) selbst sondern bekommt sie übergeben ("injiziert") – so kann z.B. zum Testen ganz einfach ein Dummy-Objekt (oder eine Dummy-Methode) übergeben werden, ohne dass erst aufwändig Code-Änderungen vorgenommen werden müssen.
    Durch die Abtrennung des Codes vom Framework wird der Code wiederverwendbar, so können z.B. sämtliche an ein Framework gebundene Methoden einfach ausgetauscht werden.
  • Spezielle Funktionen aus Flow3 für DI sind der "Component Manager" und das sogenannte "Autowriting", auf die aber nur kurz eingegangen wurde.
  • Kritik (im Vortrag nicht erwähnt): Teilweise wird Programmlogik in Konfigurationsdateien ausgelagert, was die Wartbarkeit erschwert.

  • Aspect Oriented Programming (AOP)
    Aspektorientierte Programmierung ist eine Programmier-Philosophie ("programming paradigm"), die zentral von der Fragestellung ausgeht, was die Software "eigentlich" machen soll (Zielsetzungen / Anforderungen = "concerns"). Sicherheit, Logging und Persistenz werden dabei eher als "Ablenkungen" verstanden.
    Die "concerns" sollen in der Programmierung zum einen getrennt voneinander entworfen, entwickelt und getestet werden, zum anderen aber zentralisiert (nachher zusammengefügt) werden.
  • Das Entwickeln und Testen von "concerns" in AOP läuft daher (speziell in der Testphase) über das "Abfangen" von Methodenaufrufen hinaus, was auch später insbesondere für Logging (wer hat wann, wie und mit welchen Parametern welche Methode aufgerufen?) und Sicherheit (ist der Methodenaufruf mit diesen Parametern, zu diesem Zeitpunkt und von diesem Benutzer erlaubt?) zum Einsatz kommt, aber auch bei Transaktionen und Statistiken Verwendung findet.
    So kann neuer Code und neues "Code-Verhalten" zu bestehendem Code hinzugefügt werden, ohne dass man diesen ändern müsste.

Fazit: Interessanter, ganz gut dargebrachter Vortrag und interessante Einführung in das Thema.
Kleine, zu vernachlässigende Nachteile: "Live-Vorführung" am Quellcode funktionierte nicht. Beispiele nur anhand von Flow3.


Ressourcen:
http://www.robertlemke.de (Präsentation leider nicht online)
http://flow3.typo3.org (Flow3: "PHP-based enterprise application framework")
http://forge.type3.org

Programminfo:
This session introduces two powerful techniques which support a clean design of enterprise applications and the implementation of a domain-driven design. In addition to the theoretical background you will learn how to take advantage of AOP and DI in your own projects. The examples given are based on the brand new TYPO3 Application Framework.


____________
beehave - home of humbug ... [we can't afford to be neutral]

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    beeForum Foren-übersicht » hal9000 Seite 1 von 1
Gehe zu:  



ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Sie hören gerade..... (2008) Frederik silikonimplantate 153 Do, 17 Sep 2009, 21:48 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Understanding the PHP Object-Model boris hal9000 0 Sa, 18 Apr 2009, 11:27 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Advanced Object-Oriented JavaScript boris hal9000 0 Sa, 18 Apr 2009, 11:21 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Speaker Panel: Top Speakers from Ruby, Groovy boris hal9000 0 Sa, 18 Apr 2009, 11:16 Letzten Beitrag anzeigen
Keine neuen Beiträge DLW 2008: Metaprogramming with Ruby boris hal9000 0 Sa, 18 Apr 2009, 11:13 Letzten Beitrag anzeigen


Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
phpBB © phpBB Group | impressum