Architectural Principles
This chapter delves into fundamental architectural principles: pillars of contemporary software development practices. These principles help us create flexible, resilient, testable, and maintainable code.
We can use these principles to stimulate critical thinking, fostering our ability to evaluate trade-offs, anticipate potential issues, and create solutions that stand the test of time by influencing our decision-making process and helping our design choices.
As we embark on this journey, we constantly refer to those principles throughout the book, particularly the SOLID principles, which improve our ability to build flexible and robust software systems.
In this chapter, we cover the following topics:
- The separation of concerns (SoC) principle
- The DRY principle
- The KISS principle
- The YAGNI principle
- The SOLID principles
We also revise the following notions:
- Covariance
- Contravariance ...