'. '

AOP

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
#REDIRECT [[wikipedia::Aspect-oriented_programming]]
+
[[wikipedia::Aspect-oriented_programming|Aspect Oriented Programming]] can be analyzed from various angles. Official explanation is available at [[wikipedia::Aspect-oriented_programming|wikipedia]]. This page offers my own thoughts.
 +
 
 +
== [[Bytecode]] patching ==
 +
 
 +
There used to be a time when people went nuts on hearing the phrase ''[[bytecode]] manipulation''. That's no longer the case. People aren't afraid to execute [[bytecode]] different to that produced by the [[Java]] compiler anymore. However, if you tell them to go directly into the .class file and manipulate the bits, the fear returns. Why is that? I believe this is due to [[AOP]]. [[AOP]] make [[bytecode]] changes normal, without requiring understanding of the class file format. In fact, [[AOP]] can be seen as a high level language for [[bytecode]] manipulation. It is not as powerful as making changes to the .class file directly, yet it is approachable to the masses and generally understandable. This perfectly illustrates the principle that good abstractions make everything more usable. The principle is true in the world of [[bytecode]] manipulation as well as in that of [[API]] design.

Revision as of 20:24, 12 November 2009

Aspect Oriented Programming can be analyzed from various angles. Official explanation is available at wikipedia. This page offers my own thoughts.

Bytecode patching

There used to be a time when people went nuts on hearing the phrase bytecode manipulation. That's no longer the case. People aren't afraid to execute bytecode different to that produced by the Java compiler anymore. However, if you tell them to go directly into the .class file and manipulate the bits, the fear returns. Why is that? I believe this is due to AOP. AOP make bytecode changes normal, without requiring understanding of the class file format. In fact, AOP can be seen as a high level language for bytecode manipulation. It is not as powerful as making changes to the .class file directly, yet it is approachable to the masses and generally understandable. This perfectly illustrates the principle that good abstractions make everything more usable. The principle is true in the world of bytecode manipulation as well as in that of API design.

Personal tools
buy