SOLID, Shazam da Orientação a objetos?

Thiago Chagas
Apr 30, 2019 · 3 min read

Fala pessoal tudo bem?
Começaremos aqui uma nova jornada para que possamos melhorar a nossa forma de escrever códigos usando orientação a objetos, independentemente da linguagem que você escolher.
Irei começar por um assunto que muita gente já deve ter escutado e até mesmo debatido, mas que abrirá novos caminhos para a jornada que teremos a frente. O SOLID irá nos ensinar a construir uma programação orientada a objetos de forma correta e também e ajudar a resolver problemas do nosso dia a dia.
Vamos começar falando sobre o SOLID. Mas o que é o SOLID???
O SOLID nada mais é do que um acrônimo de alguns princípios da programação orientada a objetos e design de código que foram identificados por Robert C. Martin (o nosso querido Uncle Bob) mostrado em seu artigo “Princípios de Design e Padrões de Design” em 2000 e introduzidos por Michael Feathers.
O SOLID para a O.O é como: “Uma arma elegante para uma era mais civilizada.”(KENOBI, Obi Wan).

Brincadeiras a parte, estes princípios de desenvolvimento são divididos em:

  • Single Responsabilty ( Responsabilidade Única);
  • Open Close Principle (Princípio Aberto e Fechado);
  • Liskov Substitution Principle (Princípio da Substituição de Liskov);
  • Interface Segregation Principle (Princípio da Segregação de Interfaces);
  • Dependency Inversion Principle (Princípio da Inversão de Dependência).

Mas o que ganhamos fazendo o uso destes princípios??

  • Códigos mais fáceis de manter, adaptar e ajustar;
  • Códigos testáveis e compreensíveis;
  • Códigos que fornecem o reaproveitamento;
  • Códigos duráveis ou seja com mais tempo de vida para utilização.

E o que evitamos??

  • Grande dificuldade para testar ou criar testes de unidade;
  • Funcionalidades não isoladas;
  • Código frágil;
  • Duplicação de código em N locais;
  • Códigos sem estrutura(o famoso Golem de Lama).

Então começaremos pelo princípio da Responsabilidade Única ou Single Responsability(SRP).

Quem nunca deu manutenção em um sistema que continha uma classe com mais de 5000 linhas, as famosas classes “DEUS” que fazem tudo??
De acordo com o Livro Clean Code, o nome de uma classe já deve descrever quais responsabilidades ela possui,quando este nome é escolhido de forma concisa teremos uma definição de responsabilidade e até uma orientação para o tamanho da classe.
Este princípio diz que uma classe deve conter um e apenas um motivo para mudar. O SRP é um dos conceitos mais importantes em orientação a objetos além de um dos mais simples.
Mas, mesmo sabendo disso porquê muitos desenvolvedores não fazem questão de usar?Porque não sabem a diferença entre fazerem um código funcionar e torná-lo limpo. Isso são coisas bem diferentes, ter organização, clareza e manter as responsabilidades é muito importante na escrita de um código.

“A classe deve ter uma única responsabilidade e um único motivo para mudar”

Vamos exemplificar isso:

Vamos analisar esta classe que se chama Desenvolvedor.Se levarmos em conta os princípios do SOLID, a classe tem alguns problemas mas vamos nos atentar apenas ao SRP no momento. Preste atenção nos dois métodos dessa classe “SalvarDesenvolvedor” e “BuscarEnderecoPorCep e vamos nos fazer uma pergunta, seria mesmo responsabilidade desta classe efetuar operações em banco de dados e fazer requisições para serviços externos que esta aplicação consome?

E o que poderíamos fazer para sanar estes problemas?

Estes métodos não são responsabilidade desta classe e deveriam estar em outro lugar na arquitetura da aplicação(Em uma camada de infraestrutura e de repente usando um pattern).

Chegamos ao final da nossa primeira parte dessa jornada tão incrível sobre o SOLID. No próximo artigo falaremos sobre o Open Close Principle (Princípio Aberto Fechado).

May the force be with you.

    Thiago Chagas

    Written by

    Microsoft Technology Associate (MTA), .Net Developer at Radix

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade