Principles of Software Architecture
In this chapter, we are going to cover the fundamental principles of software architecture. They are vitally important to every part of software architecture. We should constantly remind ourselves of these, just like professional pianists practice scales every day.
We’ll go through different ways to describe and view software architecture first. Then we’ll cover a few important principles that will be referenced in later chapters. It is intended that you might go back to this chapter anytime and contemplate again some of these key concepts.
- Perspectives, dimensions, and qualities
- Separation of concerns, cohesiveness, and coupling
- SOLID principles
- YAGNI and future-proof architecture
- The Law of Demeter