Um dos maiores desafios dos desenvolvedores é manter a qualidade do código durante todo o desenvolvimento. Por isso, há boas práticas, como o SOLID. Os princípios têm por finalidade reduzir a complexidade do código, o acoplamento entre classes, entre outros. Neste artigo, apresentamos todos os princípios do SOLID e como eles te ajudarão com seu código.

O que é SOLID?

O termo foi introduzido por Michael Feathers. SOLID é um acrônimo que representa cinco princípios da programação orientada a objetos e design de códigos, teorizados por Robert Martin, também conhecido como Uncle Bob.

  • S – Single Responsibility Principle (Princípio da Responsabilidade Única)
  • O – Open/Closed Principle (Princípio do Aberto/Fechado)
  • L – Liskov Substitution Principle (Princípio da Substituição de Liskov)
  • I – Interface Segregation Principle (Princípio da Segregação de Interfaces)
  • D – Dependency Inversion Principle (Princípio da Inversão de Dependências)

1. Princípio da Responsabilidade Única

Este princípio usa como base a coesão, ou seja, afinidade funcional dos elementos de um módulo. Em outras palavras, uma classe deve ter uma única responsabilidade.

A class should have one, and only one, reason to change

Com isso, quanto mais bem definido o que sua classe faz, mais coesa ela é.

Leia também: “Projetos de programação: seu conhecimento em prática”

Os princípios SOLID mantém seu código mais limpo e com menos erro

Os princípios SOLID mantém seu código mais limpo e com menos erro

2. Princípio do Aberto/Fechado

Resumindo, podemos estender o comportamento de uma classe, mas não podemos permitir a abertura para fazer pequenas modificações. Para estendê-la, podemos utilizar herança, interface e composição.

You should be able to extend a classes behavior, without modifying it

Resolvemos com este princípio outro ponto da complexidade do código. Quanto mais regras criamos, mais casos existirão e a manutenção da classe ficará inviável.

Leia também: “Freelancer: como começar em TI”

3. Princípio da Substituição de Liskov

O princípio foi descrito por Barbara Liskov, o qual pondera os cuidados de utilizar a herança no projeto. Apesar de ser um mecanismo poderoso, ela deve ser usada de forma moderada e contextualizada. Esse ponto evita que classes sejam estendidas apenas por possuírem algo em comum, tornando o código uma bagunça.

Derived classes must be substitutable for their base classes

Uncle Bob, explica que este princípio é capacitador do princípio anterior (OCP), pois a possibilidade de substituição de subtipos permite que um módulo possa ser extensível sem modificações.

As melhores oportunidades no mercado de TI.

4. Princípio da Segregação de Interfaces

O princípio se baseia na ideia de que muitas interfaces específicas são melhores que uma interface geral. Ou seja, interfaces que possuem muitos comportamentos são difíceis de manter e evoluir.

Make fine grained interfaces that are client specific

Mas precisamos tomar cuidado, pois devemos evitar que centenas de interfaces diferentes sejam criadas de forma indevida.

Leia também: “Entrevista Front-end: como se destacar”

5. Princípio da Inversão de Dependências

Devemos depender de abstrações e não de classes concretas. Isso ocorre pelo fato das abstrações mudarem menos e facilitarem a mudança de comportamento, além de futuras evoluções no código.

Depend on abstractions, not on concretions

Uncle Bob separa o princípio em dois itens:

  • “Módulos de alto nível não devem depender de módulos de baixo nível.”
  • “As abstrações não devem depender de detalhes. Os detalhes devem depender das abstrações.”

Conclusão

Os princípios SOLID deveriam ser usados e treinados por todos desenvolvedores, pois com eles, podemos evitar problemas muito comuns, por exemplo:

  • Dificuldade em testes
  • Fragilidade
  • Duplicação de código

Além de poupar muito tempo no futuro para refatorar o código. Recomendo que tente aplicar os conceitos em um sistema simples como treinamento. Caso queira ler artigos mais específicos sobre o assunto, o próprio Uncle Bob possui um blog de Clean Code.

Outro ponto de extrema importância: desenvolvedores, os quais se preocupam com o design e qualidade do código, estão em destaque nos processos seletivos das oportunidades.

Espero que tenha gostado do conteúdo. Utilize o campo dos comentários para enviar feedbacks e experiências 🙂

 

PROGRAMATHOR

 


Consiga um emprego!

Está buscando novas oportunidades como desenvolvedor?  Acesse a ProgramaThor, uma startup focada no recrutamento de desenvolvedores. Para se candidatar às vagas para programador e receber notificações em casos de matching, basta se cadastrar e completar seu perfil corretamente.

VAGAS PARA PROGRAMADORES

Este artigo é inspirado no texto do Medium

Compartilhar

Sobre o autor

Guilherme Luis
Guilherme Luis
Estudante de Administração de empresas, transformo ideias em palavras. Fascinado por marketing e criações.