[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