Kaique Mitsuo Silva Yamamoto
Arquitetura softwareFrontend webTypeScriptClean CodeSOLID

SOLID — Os 5 princípios de design

Introdução aos princípios SOLID em TypeScript — o que são, por que importam e como navegar nas 5 páginas dedicadas.

SOLID em TypeScript

SOLID é um acrônimo criado por Michael Feathers (2000) a partir dos princípios de Robert C. Martin (Uncle Bob). São 5 regras de design orientado a objetos que, quando aplicadas, produzem código que é fácil de entender, testar e modificar.

O que significa SOLID?

LetraPrincípioEm uma frase
SSingle ResponsibilityUma classe deve ter apenas um motivo para mudar
OOpen/ClosedAberta para extensão, fechada para modificação
LLiskov SubstitutionSubtipos devem ser substituíveis por seus tipos base
IInterface SegregationPrefira interfaces pequenas e específicas
DDependency InversionDependa de abstrações, não de implementações

Analogia do dia a dia

Imagine um restaurante:

  • S — O cozinheiro cozinha, o garçom atende, o caixa cobra. Se o cozinheiro também tivesse que atender e cobrar, uma mudança no cardápio afetaria o atendimento.
  • O — O cardápio pode receber pratos novos sem precisar reescrever o cardápio inteiro.
  • L — Se o cardádio diz "prato vegetariano", um prato que usa caldo de carne não deveria estar nessa categoria.
  • I — O garçom precisa saber o que serve, mas não precisa saber a receita. O cozinheiro precisa saber a receita, mas não precisa saber cobrar.
  • D — O gerente dá ordens (abstração), não importa se é o João ou a Maria executando.

Por que importa em TypeScript?

TypeScript não é apenas JavaScript com tipos — ele dá ferramentas concretas para aplicar SOLID:

  • Interfaces → base para I e D
  • Generics → permitem L sem duplicação
  • Type narrowing → ajuda com S ao separar responsabilidades de tipo
  • satisfies → garante O sem perder inferência

Estude cada princípio

Referências

On this page