[aosd-discuss] Inheritance hierarchies

Nathan McEachen nathan at mceachen.us
Thu Apr 19 13:23:07 EDT 2007


Dean Wampler wrote:
>
> +1. That's why I think most aspects should only add orthogonal state  
> and behavior to the modules they advise. Otherwise, you have a non- 
> trivial problem of reasoning about the behavior. (Even then, such  
> aspects can impact performance and other systemic properties.) Non- 
> orthogonal aspects should be used deliberately and with caution, at  
> least given the current state of our art.
>
>   
Agreed!
> Coming from industry, the vast majority of developers simply won't  
> use aspects if they have to do some sort of global analysis to ensure  
> correct behavior. Very few organizations do anything like that today.  
> It would be too big a barrier. Fortunately, the problem is diminished  
> by using mostly orthogonal aspects. Also, rigorous automated testing,  
> which is already a best practice that emerged in the last decade,  
> will help detect many problems.
>
> dean
I am working on a project using AspectJ and I am the only developer 
familiar with aspects.  I also have tried to write aspects that add only 
orthogonal state and behavior.  Otherwise, I feel the complexity 
increases dramatically.  The other developers understand AOP only in 
concept.  They understand that the weaver introduces additional code 
into their classes, but are not familiar enough with AspectJ to look at 
my pointcuts and advice to understand the behavior that my aspects 
implement.  Consequently, when unit testing exposes a bug in one of 
their classes, they are quick to assume that my "rouge" and "intrusive" 
aspects may be the culprit. Even though 99% of the time my aspects were 
not responsible for such bugs, aspects continue to be the number 1 
suspect.  

-Nathan







More information about the discuss mailing list