Although we are not trying to teach you software design, it might be worth noting that Martin Fowler, a very influential thinker in the IT world, had this to say:
I’ve concluded that the majority of the time you need to take an evolutionary approach to software design, which explains my involvement in the agile community. I’ve also concluded that patterns are one of the most effective ways to organize and communicate ideas about design.
- Martin Fowler, https://martinfowler.com/design.html, second paragraph
In this book, we will not go over software design patterns, but encourage you to have an awareness of these patterns. In an absolutely shameless plug, here are two good books on that subject from Packt Publishing:
- Architectural Patterns, by Pethuru Raj, Anupama Raman, and Harihara Subramanian
(https://www.packtpub.com/application-development/architectural-patterns) - Learning Python Design Patterns: Second Edition, by Chetan Giridhar
(https...