50 minute intermediate seminar
When you try to model and design your code base for a larger project, you'll inevitably face the problem of needing to add so-called "cross-cutting concerns" to your design.
Cross-cutting concerns are tasks like caching or logging that are not specific to a singular responsibility, but rather "cut across all subsystems".
We'll start by looking at why they are problematic to cleanly design, and then we'll go over techniques of how to deal with them. We'll discuss caching and logging as examples to demonstrate multiple approaches, like decorators or aspect-oriented programming, together with their advantages and drawbacks.