Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm curious to here the opinions of people working in large enterprise organisation whether AOP is widely (or even modestly) used when they are developing? Is AOP something which is inherent in the design. Because from everything I managed to find on the Internet (including by reading the AspectJ in Action, 2nd ed. book) I was left with the impression that AOP is something which is more of a "niche" type of technology. My main point is whether there is a point in investing effort and time in learning to an acceptable level - e.g. the join-point mechanism, advices etc.

Furthermore, do you design with AOP in mind or you use it to amend shortcomings in an existing design?

share|improve this question
2  
One problem with AOP is that you risk that the program gets fragmented across source files and hard to understand. For inexperienced programmers this may outweigh the advantages. –  user1249 Oct 20 '11 at 20:49

3 Answers 3

I'm going to go the opposite and say that I've seen heavy usage in the Investment Banking and finance space. The cross-cutting concerns of Security and Transactions suit AOP and are widely used by the clients I work with.

share|improve this answer
    
+1 because I use it all the time. Security, transactions, almost anything with annotations gets the AOP treatment. –  Gary Rowe Oct 21 '11 at 10:04
    
You forgot to mention the particular technology ecosystem that you're talking about, that is: Java Enterprise Edition –  Alex Butum May 27 at 6:39

In my experience, it's not very widely used. The most I've ever seen is using Spring to handle some dependency injection, and even that was not very heavily used.

I imagine I'd see more of it if it were available as a core feature of whatever language was being used (we don't just use Java), rather than 3rd party tools and libraries (if there are languages that have AOP as core features, I'm not aware of them, but I'm interested to hear about them!).

share|improve this answer

In my experience, it's widely touted and talked about - either to show technical supremacy or value of trainings given. But when it comes to code on ground zero almost no one uses it! It's kinda hard and the nomenclature is quite unintuitive - advice, join-points, point-cuts etc.,

I've known more than a handful of seasoned people who still get confused with the terminologies!

The question is more of is AOP 'worth it'? It well may be if a lot of things in your application can be put into 'aspects' so to speak. So the return on investment of AOP could be justifiable.

For your project you should (strongly suggested) question its worth. Would a simpler technique be beneficial or is AOP simply being used to jump onto the buzzword bandwagon? That'll help you decide for yourself, irrespective of whether other companies are using it!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.