"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Was kommt nach OOP? AOP!

rettich 18.11.2004 - 12:14 843 3
Posts

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794
Weil in einem anderen Thread die Frage "Was kommt nach OOP (Objektorientierter Programmierung)?" aufgetreten ist, möchte ich hier mal eine mögliche Antwort zur Diskussion stellen:

AOP (Aspect Oriented Programming)

Sinn von OOP ist es, codingaufwand zu reduzieren - durch erhöhung der wiederverwendbarkeit von code. eine klasse implementiert eine funktion und alle anderen klassen greifen darauf zu. ziel: ich schreibe die funktion ein einziges mal, muss bei änderungen nur eine funktion ausbessern.

AOP verfolgt den ansatz, use-case driven zu coden. dabei wird für jeden handlungsablauf der software neuer code erstellt - obs eine gewisse funktionalität schon gibt oder nicht, ist dabei zweitrangig. vorteil: vor allem beim testen der software und bei änderunge muss ich nicht aufpassen, welche anderen bereiche der software von diesem fehler/von dieser änderung beeinträchtigt werden. die zahl der zu fahrenden tests nach einer änderung reduziert sich drastisch.

nachteil: ich brauch ein richtig gutes system, um den code konsistent zu halten (wie bei jeder redundanz) - wenn ich in einem ablauf code ändere, muss ich den dann an anderer stelle auch ändern? usw

ist das jetzt was neues? nein. die anfänge von AOP gehen über 10 jahre zurück. (damals hieß es noch agent oriented programming)
ist das jetzt was gutes? gute frage. immer mehr "visionäre" tendieren zu AOP - ein ausgereiftes modell gibts aber AFAIK (noch) nicht.

weiterlesen?
http://en.wikipedia.org/wiki/Aspect...ted_programming
http://aosd.net/

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
von AOP hab ich schon mal gehört.. is aber schon 1-2 jahre her, seitdem nichts mehr :p

allgemein denke ich dass die zukunft eher in richtung visualized coding geht. keine 3kg source code pro file, sondern objects die man visuell aus dem workflow herausnimmt bzw. hinzufügt. ebenfalls wird sich immer weiter eine gewisse standardstruktur für jegliche art von programmen entwickeln (ist für AOP auch nötig), auf deren basis gearbeitet wird. klarerweise ist das alles nix neues und gibts schon teilweise (Access, COM Schnittstelle usw.)

M.I.P.S.

Big d00d
Avatar
Registered: Mar 2002
Location: On the inside
Posts: 324
Zitat von rettich
Weil in einem anderen Thread die Frage "Was kommt nach OOP (Objektorientierter Programmierung)?" aufgetreten ist, möchte ich hier mal eine mögliche Antwort zur Diskussion stellen:

AOP (Aspect Oriented Programming)

Sinn von OOP ist es, codingaufwand zu reduzieren - durch erhöhung der wiederverwendbarkeit von code. eine klasse implementiert eine funktion und alle anderen klassen greifen darauf zu. ziel: ich schreibe die funktion ein einziges mal, muss bei änderungen nur eine funktion ausbessern.

AOP verfolgt den ansatz, use-case driven zu coden. dabei wird für jeden handlungsablauf der software neuer code erstellt - obs eine gewisse funktionalität schon gibt oder nicht, ist dabei zweitrangig. vorteil: vor allem beim testen der software und bei änderunge muss ich nicht aufpassen, welche anderen bereiche der software von diesem fehler/von dieser änderung beeinträchtigt werden. die zahl der zu fahrenden tests nach einer änderung reduziert sich drastisch.

nachteil: ich brauch ein richtig gutes system, um den code konsistent zu halten (wie bei jeder redundanz) - wenn ich in einem ablauf code ändere, muss ich den dann an anderer stelle auch ändern? usw

ist das jetzt was neues? nein. die anfänge von AOP gehen über 10 jahre zurück. (damals hieß es noch agent oriented programming)
ist das jetzt was gutes? gute frage. immer mehr "visionäre" tendieren zu AOP - ein ausgereiftes modell gibts aber AFAIK (noch) nicht.

weiterlesen?
http://en.wikipedia.org/wiki/Aspect...ted_programming
http://aosd.net/

Hab mal die Artikel in der deutschen und der englischen Wikipedia überflogen und irgendwie hat sich das dort für mich ein wenig anders dargestellt, als wie du es erklärt hat.

AOP ist kein neues Paradigma wie OOP sondern eher ein OOP 1.1.
Sinn ist es wenn gewisse Ereignisse, Strukturen... auftreten eine spezielle Routine aufgerufen wird, die nicht bei jedem Auftreten explizit aufgerufen werden muß. Auf diese Weise erfolgt eine Trennung von semantisch unterschiedlichen Programmteilen.

So wie ich das sehe, ist das nix anderes als eine Art softwaremäßiger Interrupt (der vom Compiler als banaler Funktionsaufruf behandelt wird).

Das ganze hat zwei Probleme:
.) Overhead
.) evtl. unvorhersagbare Programmausführung

P.S.: Die Codewiederverwendung war einer der größten Vorteile von OOP. Den wird man sicher nicht mehr aufgeben.

vanHell

Tauren Marine
Registered: May 2004
Location: Hell
Posts: 1017
Was nach OOP kommt? Sicher nicht AOP!
Erstens ist bei nativen Sprachen schwer (um nicht zu sagen unmöglich) zu implementieren.
Zweitens ist es nur für speziellen Funktionen brauchbar z.b: Logging und Fehlerbehandlung
Oder kann irgendwer auf eine Application verweissen die extremen gebrauch von AOP macht??
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz