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”
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.
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 🙂
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.
Este artigo é inspirado no texto do Medium
Sobre o autor
- Estudante de Administração de empresas, transformo ideias em palavras. Fascinado por marketing e criações.
Últimos artigos
- Dicas de Recrutamento e Seleção24 Setembro, 2019Atrair desenvolvedores para sua oportunidade
- Dicas de Recrutamento e Seleção2 Setembro, 2019Como criar vaga de desenvolvedor atrativa
- Dicas21 Agosto, 2019Top extensões para VS Code
- Dicas14 Agosto, 20195 linguagens de programação para aprender