Design de Software
TL;DR
A disciplina de projetar código bem — o craft de organizar objetos, responsabilidades e dependências pra que o software resista à mudança. Reúne orientação a objetos como prática, os princípios SOLID e os design patterns. É o nível meso/micro do design; a forma macro do sistema vive em Arquitetura.
Sobre este domínio
Onde a teoria de paradigmas explica o que é OO, aqui está como usá-lo bem: encapsulamento na prática, composição sobre herança, acoplamento e coesão, os cinco princípios SOLID e o catálogo de padrões. A fronteira: a teoria do paradigma fica em Ciência; o craft de aplicá-lo fica aqui (são reforço mútuo, linkam — não duplicam).
Galhos
- Orientação a Objetos — OO como craft: encapsulamento, herança, polimorfismo, coesão, anti-patterns
- SOLID — os cinco princípios de design OO
- Padrões de Projeto — catálogo de consulta de padrões (galho-pai, 6 famílias; Clássicos/GoF completa)
Veja também
- Engenharia — a camada
- Arquitetura — a forma macro do sistema
- Complexidade de Software — por que o bom design importa