Destaques

SOLID principios: o que sao e por que fazem diferenca na arquitetura

ResumoOs princípios SOLID são cinco diretrizes da programação orientada a objetos que promovem código modular, coeso e de fácil manutenção. O acrônimo representa Responsabilidade Única, Aberto/Fechado, Substituição de Liskov, Segregação de Interface e Inversão de Dependência. SOLID melhora a arquitetura de software ao reduzir acoplamento e facilitar a escalabilidade e evolução do sistema.

Os principios SOLID sao cinco regras da programacao orientada a objetos que tornam o codigo mais organizado, facil de dar manutencao e de escalar. Cada letra do acronimo representa um principio: Responsabilidade Unica, Aberto/Fechado, Substituicao de Liskov, Segregacao de Interfa

Babi Cordeiro
Melhor imagem do Sol revela processo oculto na superfície

Melhor imagem do Sol revela processo oculto na superfície — Foto: Reprodução / Blog Sem Juízo

Senta que la vem historia: voce ja mexeu num codigo que parecia um castelo de cartas? Qualquer alteracao, por menor que fosse, derrubava tudo. Pois e, a gente ja passou por isso. E foi pensando nesse caos que o tio Robert C. Martin (o Uncle Bob) bolou os principios SOLID. Nada mais sao que cinco regrinhas da programacao orientada a objetos que, quando seguidas, deixam o codigo mais organizado, facil de dar manutencao e de escalar. Cada letra do acronimo representa um principio. E e exatamente o que vamos destrinchar agora.

O que significa cada letra do SOLID?

S, Single Responsibility Principle (Principio da Responsabilidade Unica)

Cada classe deve ter uma unica responsabilidade. Se uma classe faz mais de uma coisa, ela vira uma daquelas gavetas de bagunca que a gente tem em casa: tudo misturado, nada se acha. No codigo, isso significa que uma classe que lida com banco de dados nao deveria tambem gerar relatorios em PDF. Se precisar mudar a logica de geracao de relatorio, voce mexe so nela, sem risco de quebrar a parte do banco.

O, Open/Closed Principle (Principio Aberto/Fechado)

As classes devem estar abertas para extensao, mas fechadas para modificacao. Ou seja: voce consegue adicionar funcionalidades novas sem precisar reescrever o que ja funciona. Um exemplo classico: em vez de usar um monte de if-else para cada tipo de pagamento, voce cria interfaces e implementa cada metodo separado. Quer adicionar um novo metodo? Cria uma nova classe, sem encostar nas outras.

L, Liskov Substitution Principle (Principio da Substituicao de Liskov)

Se uma classe filha substitui a classe pai, o programa precisa continuar funcionando do mesmo jeito. Isso parece obvio, mas na pratica a gente ve cada coisa... Imagina que voce tem uma classe Passaro com um metodo voar(). Se criar uma classe Pinguim que herda de Passaro, o pinguim nao voa, entao a heranca quebrou o principio. Melhor usar composicao ou reestruturar a hierarquia.

I, Interface Segregation Principle (Principio da Segregacao de Interfaces)

Ninguem deveria ser forcado a implementar uma interface que nao usa. Em vez de uma interface gigante com varios metodos, crie interfaces menores e mais especificas. Por exemplo, uma interface Trabalhador com metodos trabalhar() e comer() pode ser separada em Trabalhavel e Comivel. Assim, um robo que so trabalha nao precisa implementar comer().

D, Dependency Inversion Principle (Principio da Inversao de Dependencias)

Modulos de alto nivel nao devem depender de modulos de baixo nivel. Ambos devem depender de abstracoes. Na pratica, em vez de uma classe Pedido depender diretamente de uma classe BancoDeDadosMySQL, ela depende de uma interface RepositorioPedido. Assim, se amanha voce trocar o banco, so precisa criar uma nova implementacao da interface, sem mexer na logica do pedido.

FAQ

O que e SOLID na programacao?

SOLID e um acronimo para cinco principios da programacao orientada a objetos que visam deixar o codigo mais organizado, facil de dar manutencao e de escalar. Eles foram popularizados por Robert C. Martin e sao considerados boas praticas essenciais para arquiteturas limpas.

Quais sao os 5 principios SOLID?

S, Single Responsibility (Responsabilidade Unica), O, Open/Closed (Aberto/Fechado), L, Liskov Substitution (Substituicao de Liskov), I, Interface Segregation (Segregacao de Interfaces), D, Dependency Inversion (Inversao de Dependencias).

SOLID e para iniciantes?

Sim, mas com calma. Os conceitos sao simples, mas a aplicacao pratica exige experiencia. O ideal e comecar aplicando um principio de cada vez, sem pressa. Com o tempo, vira natural.

Qual a diferenca entre SOLID e Clean Code?

Clean Code e um conjunto mais amplo de boas praticas de codificacao (nomes significativos, funcoes pequenas, etc.). SOLID e um conjunto especifico de principios para arquitetura orientada a objetos. Os dois se complementam: codigo limpo e principios SOLID formam uma base solida.

Preciso seguir todos os principios sempre?

Nao. Sao guias, nao leis. Em projetos pequenos ou prototipos, aplicar todos pode ser overkill. O importante e entender o custo-beneficio: para sistemas que vao crescer e ter manutencao constante, SOLID faz toda a diferenca.

Como comecar a aplicar SOLID no dia a dia?

Comece pelo S (Responsabilidade Unica). Olhe suas classes e veja se elas fazem mais de uma coisa. Depois, va para o D (Inversao de Dependencias), que e um dos que mais traz ganhos. Use muito testes unitarios para sentir quando um principio esta sendo violado.

Resumindo: SOLID nao e um bicho de sete cabecas. E um conjunto de principios que, quando aplicados com bom senso, transformam aquele codigo fragil num sistema robusto e facil de dar manutencao. Comece devagar, um principio de cada vez, e voce vai sentir a diferenca na pele.

Babi Cordeiro

Editoria Destaques

Babi Cordeiro cobre o setor de meios de pagamento e crédito no Blog Sem Juízo. Análises técnicas, sem viés comercial.

Leia também · Destaques