When faced with real life complexity there rarely is an easy way out or a silver bullet solution. Here I will describe the model I’ve come up with during years of trial and error. The solution presented here is as far as I know not a mainstream one and it could be considered somewhat controversial.
Object Oriented Approach
Here we’re living in OO land. Each and every problem can be broken down to objects - we test them out both individually and jointly. We combine them in beautiful ways and then they produce the result we aim for.
Pros
- purist
- allows for modular design
Cons
- can be slow
- complicated for complex cases
- ravioli code syndrome
- additional layer of complexity by wrapping raw data into other structures