Software Architecture Cheat Sheet for Daily Usage
Software Architecture smells and heuristics
3 min readAug 5, 2021
Having clean software architecture and staying conform to pre-defined design principles from start of the project is one of the best ways to avoid possible technical debt in the future of that software system. Clean Software Design is a key point for an effective software product.
Let us have a look at some important principles, rules, guidelines that ensure a clean software design:
Principles:
- Loose Coupling — if classes use each other, they are coupled together. The less classes are coupled, the easier is to change them.
- High Cohesion — degree to which elements of a whole belong together. Components of the class should be highly cohesive.
- Locality — Changes, maintenance, extensions are only local. This leads to no harming whole environment.
- Removeable — Software Components should be easily removeable.
- Small Components — software system should be only of small components ideally each doing only one task.
Class Design:
- Single Responsibility Principle (SRP) — class should do only one task.
- Open Closed Principle (OCP) — class should be…