Start with the topic guide.
Abstraction, encapsulation, cohesion, coupling, separation of concerns, dependency injection, SOLID principles, design patterns, clean code, defensive programming, refactoring, code smells, and technical debt.
This is a learning outline. A complete worked tutorial has not been published for this topic yet.
Concept scope
Software Design & Code Quality: 13 short lessons, one for each concept. Abstraction, encapsulation, cohesion, coupling, separation of concerns, dependency injection, SOLID principles, design patterns, clean code, defensive programming, refactoring, code smells, and technical debt.