Princípios de Projeto
Os fundamentos que o SOLID assume e as heurísticas que sobram depois dele. A trilha começa nos três pilares da orientação a objetos (o que encapsulamento, herança e polimorfismo são por dentro, e o que cada um cobra), passa pelo vocabulário que permite dizer por que um design está ruim, e termina nos princípios práticos que agem na decisão pequena do dia a dia.
- 01
Encapsulamento
Esconder o que pode mudar, e por que get/set para tudo é o oposto disso. A diferença entre agrupar e ocultar, o encapsulamento aparente do modelo anêmico, e o que cada mecanismo da linguagem garante de verdade.
- 02
Herança
O mecanismo por dentro: estrutura, subtipo e despacho dinâmico. Quando herdar se paga, e por que o mesmo despacho dinâmico que dá o poder é o que produz a fragile base class.
- 03
Polimorfismo
Uma chamada, várias respostas. Os quatro tipos da classificação clássica, o desaparecimento do switch sobre tipo, e as formas de conseguir polimorfismo sem hierarquia nenhuma.
- 04
Acoplamento e coesão
O vocabulário para dizer por que um design está ruim: as escalas de coesão e de acoplamento, por que zero acoplamento não é o alvo, e o teste unitário como régua.
- 05
Lei de Demeter
Acoplamento medido em saltos, contável a olho nu na própria linha. O train wreck, o Tell Don't Ask, os falsos positivos, e por que a delegação em cascata não resolve nada.
- 06
DRY, KISS, YAGNI
Os três que mais se aplicam errado: o DRY fala de conhecimento e não de código repetido, o KISS é sobre ser consertável por quem não escreveu, e o YAGNI vale para funcionalidade especulativa, não para qualidade interna.