Skip to content
Tech News
← Back to articles

The Return of Aspect Oriented Programming

read original more articles
Why This Matters

Aspect Oriented Programming (AOP) is making a resurgence as a way to better manage cross-cutting concerns in software development. Its return is significant because it offers developers a powerful tool to improve code modularity, maintainability, and security, ultimately benefiting both the industry and end-users by enabling more robust and adaptable applications.

Key Takeaways

The Return of Aspect Oriented Programming

Consider all the things a programmer needs to keep track of while writing code:

1) Correctness: making sure the program does the right thing, satisfies all requirements, maintains all important invariants, performs the business logic in the desired way, etc.

2) Efficiency: the program uses a minimal amount of time, memory, and resources. This includes not holding onto memory for longer that it is needed, and not releasing the used memory in a fragmented state if possible. Some programs have "real time constraints" where certain efficiency goals, like returning a response to the user within 0.2 seconds, are considered part of their correctness.

3) Debuggability: when things go wrong with the program, it shouldn't be too hard to find out what they are and how to fix them.

4) Maintainability. The program should be documented and readable. It should be written in an internally consistent style that should also match the style of any external codebase it is a part of.

5) Testability. The program should be written in a way that unit and integration tests are both helpful and not too difficult to create.

6) Logging. The program should produce a usually non-comprehensive trace of its execution path and variable state that facilitates its debugging, allows its efficiency to be monitored, and allows for the collection of statistics regarding its behavior.

7) Security. The program should let the user take only authorized actions; typically these are the actions that the user could already perform without the program plus possibly a small set of explicitly defined actions that the user is granted by having access to run the program.

8) Extensibility: small numbers of small changes to the program should be relatively easy to make.

... continue reading