This chapter covers
Understanding crosscutting concerns
Modularizing crosscutting concerns using AOP
Understanding AOP languages
Reflect back on your last project, and compare it with a project you worked on a few years back. What's the difference? One word: complexity. Today's software systems are complex, and all indications point to even faster growth in software complexity in the coming years. What can a software developer do to manage complexity?
If complexity is the problem, modularization is the solution. By breaking the problem into more manageable pieces, you have a better shot at implementing each piece. When you're faced with complex software requirements, you're likely to break those into multiple parts such as ...