Importance of Software Architecture and Principles of Great Design
The purpose of this introductory chapter is to show what role software architecture plays in software development. It will focus on the key aspects to keep in mind when designing the architecture of a C++ solution. We’ll discuss how to design efficient code with convenient and functional interfaces. We’ll also show how the domain-driven approach complements Agile principles and guides both code and architecture.
In this chapter, we’ll cover the following topics:
- Understanding software architecture
- The importance of proper architecture
- The fundamentals of good architecture
- Developing architecture using Agile principles
- The philosophy of C++
- Following the SOLID and DRY principles
- Coupling and cohesion