"AOP can make code more difficult to understand, introduce runtime performance overhead, and be difficult to debug. These reasons may make it a not-so-good idea in some situations. AOP programming modularity"