Aspektorientierte Programmierung mit AspectJ 5

Einsteigen in AspectJ und AOP

(Autor)

Buch | Softcover
XVIII, 416 Seiten
2005 | 1., Aufl.
dpunkt (Verlag)
978-3-89864-330-6 (ISBN)

Lese- und Medienproben

Aspektorientierte Programmierung mit AspectJ 5 - Oliver Böhm
41,00 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Trotz Einsatz moderner Tools und Generatoren scheitern viele größere Projekte. Warum? Warum bekommt man die Komplexität nicht in den Griff? Wo bleiben die versprochenen wiederverwendbaren Komponenten? Fragen, auf die
die objektorientierung Antworten schuldig geblieben ist. Und während wir alle noch mit den Unzulänglichkeiten von Java und Java-basierten Frameworks herumkämpfen, bahnt sich im akademischen Bereich bereits der nächste
Paradigmenwechsel an: die aspektorientierte Programmierung (AOP). Aber ist AOP wirklich die Lösung künftiger Probleme?

Eine Einführung in die wunderbare Welt der Aspekte und eine kleine Fallstudie mit AspectJ geben zu Beginn des Buchs einen Ausblick auf Morgen und die Fragen: Was bringt's? Was kann ich sparen? Wieviel bin ich schneller?

Anschließend geht es an die Erlernung des Handwerkszeug, der Sprache "`AspectJ"' mit all ihren Elementen wie "`Aspects"', "`Pointcuts"' oder "`Advices"'. Dazu gehört auch der Umgang mit dem Compiler und seiner Toolkette. Hier sind die Beispiele noch einfach und überschaubar gehalten, schließlich sollen sie zur Erlernung des Wortschatzes und zum späteren Nachschlagen dienen.

Darauf aufbauend wird im dritten Teil das erlernte Wissen gefestigt und ein Satz von Standardaspekten und Lösungsansätzen ("'Pattern"') aufgezeigt, die das tägliche Entwicklerleben vereinfachen können. Wenn man dann beim Einsatz von AspectJ ein paar einfache Regeln beachtet, lassen sich auch die aspektorientierten Fallstricke geschickt umgeben. Damit sind Sie für die Praxis gerüstet und können gelassen Ihrem ersten AOP-Projekt entgegensehen -- oder selbst aktiv werden und eine der vorgeschlagenen Einführungsstrategien umsetzen.

Vorausgesetz werden Kenntnisse in Java- und den Prinzipien der Objektorientierung.

1;Vorwort;62;Inhaltsverzeichnis;103;Teil I Einleitung;203.1;1 Einführung in Aspektorientierung;223.1.1;1.1 Von Assembler bis AspectJ;223.1.2;1.2 Klasse Konto ein Fallbeispiel;263.1.3;1.3 Weaving;343.1.4;1.4 Was bedeutet AOP?;353.1.5;1.5 Sprechen Sie Aspekt-Orientalisch?!;433.1.6;1.6 Zusammenfassung;463.1.7;1.7 Übungen;473.2;2 Erste Schritte;483.2.1;2.1 Installation von AspectJ;483.2.2;2.2 Hello World;503.2.3;2.3 Ge"weav"te World;523.2.4;2.4 Welche IDE?;533.2.5;2.5 Hello IDE;593.2.6;2.6 Zusammenfassung;643.2.7;2.7 Übungen;644;Teil II Einführung in AspectJ;684.1;3 Joinpoints und Pointcuts;704.1.1;3.1 Joinpoints im Programm;704.1.2;3.2 Joinpoints in AspectJ;724.1.3;3.3 Wildcards;754.1.4;3.4 Logische Operatoren;774.1.5;3.5 Signaturen;784.1.6;3.6 Zugriff auf den Kontext;844.1.7;3.7 Zusammenfassung;904.1.8;3.8 Übungen;914.2;4 Pointcutsdefinieren;944.2.1;4.1 Anatomie eines Pointcuts;944.2.2;4.2 Beispiel: Verwaltung von Anforderungen;954.2.3;4.3 Primitive Pointcuts;974.2.4;4.4 Im Banne des Joinpoints;1104.2.5;4.5 Kontrollfluss-basierte Bezeichner;1204.2.6;4.6 Programmtext-basierte Bezeichner;1254.2.7;4.7 Dynamische Joinpoints;1284.2.8;4.8 adviceexecution;1314.2.9;4.9 Anonyme Pointcuts;1324.2.10;4.10 Zusammenfassung;1334.2.11;4.11 Übungen;1334.3;5 Advice;1364.3.1;5.1 Ziehung der Lottozahlen;1364.3.2;5.2 Definition;1384.3.3;5.3 Kontext;1404.3.4;5.4 Die verschiedenen Advice-Typen;1504.3.5;5.5 Rangeleien;1694.3.6;5.6 Zusammenfassung;1744.3.7;5.7 Übungen;1764.4;6 Intertype-Deklaration;1784.4.1;6.1 Erweiterung bestehender Klassen;1784.4.2;6.2 Noch ein Beispiel: Persistierung;1844.4.3;6.3 Übersicht über Intertype-Deklarationen;1864.4.4;6.4 Zugriffskontrolle;1884.4.5;6.5 Konfliktsituationen;1904.4.6;6.6 Eltern adoptieren;1924.4.7;6.7 Interfaces implementieren;1954.4.8;6.8 Deklaration der Rangliste;2034.4.9;6.9 Aufzählungstypen (Enums);2104.4.10;6.10 Statische Querschnittsbelange;2114.4.11;6.11 Zusammenfassung;2184.4.12;6.12 Übungen;2194.5;7 Aspekte;2224.5.1;7.1 Aspekt-Struktur;2224.5.2;7.2 Wohin mit den Aspekten?;2234.5.3;7.3 Vererbungslehre (Extensions);2264.5.4;7.4 Instanziierung und Assoziationen;2314.5.5;7.5 Zugriff auf fremde Instanzen;2374.5.6;7.6 Privilegien;2394.5.7;7.7 Zusammenfassung;2414.5.8;7.8 Übungen;2414.6;8 Annotations;2444.6.1;8.1 Annotations in Java 5;2444.6.2;8.2 AspectJ-Annotations;2474.6.3;8.3 Annotations zur Laufzeit;2564.6.4;8.4 Auf Annotations zugreifen;2594.6.5;8.5 Annotation-Vererbung;2604.6.6;8.6 Declare-Anweisungen mit Annotations;2634.6.7;8.7 Declare Annotation;2644.6.8;8.8 @AspectJ-Annotations;2664.6.9;8.9 Zusammenfassung;2764.6.10;8.10 Übungen;2774.7;9 Der AspectJ-Werkzeugkasten;2804.7.1;9.1 Ausgelieferte Dokumentation;2814.7.2;9.2 Der Compiler (ajc) und seine Optionen;2834.7.3;9.3 Der AspectJ-Doc-Generator(ajdoc);2964.7.4;9.4 Einbindung in Ant;3034.7.5;9.5 Zusammenfassung;3114.7.6;9.6 Übungen;3114.8;10 Die AspectJ-IDE in Eclipse;3144.8.1;10.1 Eine Übersicht;3144.8.2;10.2 Warum Eclipse?;3154.8.3;10.3 Der AspectJ-Visualizer;3194.8.4;10.4 Crosscutting Comparison View;3204.8.5;10.5 Debugging;3214.8.6;10.6 Eclipse 4;3224.8.7;10.7 Zusammenfassung;3234.8.8;10.8 Übungen;3235;Teil III Fortgeschrittenes AspectJ;3265.1;11 Instrumentierung von Bibliotheken;3285.1.1;11.1 Aspekte implantieren. . .;3285.1.2;11.2 Anpassung fertiger Bibliotheken;3305.1.3;11.3 Erweiterung der JDK-Bibliothek;3325.1.4;11.4 Zusammenfassung;3365.1.5;11.5 Übungen;3365.2;12 Pattern;3385.2.1;12.1 Das Observer-Pattern;3385.2.2;12.2 Fertige Pattern;3435.2.3;12.3 Pattern-Testing;3445.2.4;12.4 AspectJ-Pattern;3465.2.5;12.5 Zusammenfassung;3505.2.6;12.6 Übungen;3505.3;13 Tipps;3525.3.1;13.1 Troubleshooting;3525.3.2;13.2 Missverständnisse;3635.3.3;13.3 Kurze Methoden;3665.3.4;13.4 Setter- und Getter-Methoden;369

1 Einführung in Aspektorientierung (S. 3) Any fool can write code that a computer can understand. Good programmers write code that humans can understand.(Martin Fowler in "Refactoring") Neue Techniken und Trends bringen oft auch neue Begriffe mit sich, um sich vom Rest der (Informatik-)Welt abzuheben oder abzugrenzen. Wenn man mitreden will, reicht es aber nicht, dass man diese Begriffe kennt ohne Kenntnis des Gesamtzusammenhangs sind sie nur leere Worthülsen. Deswegen werden wir in diesem Kapiteleinen kurzen geschichtlichen Abriss über die Entwicklung der Programmiersprachen vorstellen,uns einen Überblick über die Welt der aspektorientierten Programmierung (AOP) verschaffen,einen Einblick in die Denkweise von AOP bekommen,die wichtigsten Begriffe aus dem AOP-Umfeld kennen lernen undin AspectJ als Vertreter der aspektorientierten Programmiersprachen hineinschnuppern.Nach diesem Kapitel haben Sie einen groben Einblick in die Welt der Aspektorientierung und können das Potenzial, das in diesem Ansatz steckt, abschätzen. Dem handwerklichen Umgang mit AspectJ sind dann die anschließenden Kapitel gewidmet.1.1 Von Assembler bis AspectJSeit der Erfindung von intelligenten Rechenmaschinen steht man vor dem Problem: Wie sag ich es dem Computer? Warum versteht er mich nicht? Während in der Anfangsphase die Rechner noch komplett über Schalter und Taster bedient und programmiert wurden, entwickelten sich bald die ersten Programmiersprachen, um dem Rechner seine Wünsche besser mitteilen zu können. Im Wesentlichen lässt sich diese Entwicklung in vier Epochen einteilen:1. Maschinensprache und Assembler2. Prozedurale und funktionale Sprachen3. Objektorientierte Sprachen4. Aspektorientierte SprachenDaneben gab und gibt es noch weitere Strömungen wie logische Programmiersprachen (deren bekanntester Vertreter "Prolog" ist). Aber abseits von Forschungseinrichtungen und KI (Künstliche Intelligenz) blieb diesen Sprachen der Durchbruch verwehrt. Dieses Kapitel soll fernab von akademischen Feinheiten nur einen groben Überblick über den "Mainstream" ohne Anspruch auf Vollständigkeit geben.1.1.1 Maschinensprache und AssemblerDer Prozessor im Innersten des Rechners versteht leider nur Nullen und Einsen, und auch seine Befehle setzen sich daraus zusammen. Diese "Maschinensprache" musste man in der EDV-Steinzeit beherrschen, um den Rechner programmieren zu können (stellen Sie sich einfach vor, Sie müssten direkt den Bytecode eingeben).

Verlagsort Heidelberg
Sprache deutsch
Maße 165 x 240 mm
Gewicht 730 g
Einbandart Paperback
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Schlagworte AspectJ • Aspektorientierte Programmierung • Hardcover, Softcover / Informatik, EDV/Informatik • HC/Informatik, EDV/Informatik • Java • JAVA (Programmiersprache) • Programmierung • Softwaretechnik
ISBN-10 3-89864-330-1 / 3898643301
ISBN-13 978-3-89864-330-6 / 9783898643306
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
Mehr entdecken
aus dem Bereich

von Andrie de Vries; Joris Meys

Buch | Softcover (2021)
Wiley-VCH (Verlag)
25,00
Entwurfsmuster für effektive Softwareentwicklung

von Karl Eilebrecht; Gernot Starke

Buch | Softcover (2024)
Springer Vieweg (Verlag)
19,99
eine kompakte Einführung

von Brendan Burns; Joe Beda; Kelsey Hightower; Lachlan Evenson

Buch | Softcover (2023)
dpunkt (Verlag)
39,90