Conheça o S.O.L.I.D. — Parte 1

Ricardo Calixto
TaqtileBR
Published in
2 min readJan 24, 2020

--

Um dos maiores desafios de um desenvolvedor é manter a qualidade do código, fator importantíssimo para sua manutenção e escalabilidade. Isso se torna ainda maior quando temos uma equipe atuando simultaneamente na criação do produto.

Existem algumas orientações para lidar com essa questão, sendo uma delas o S.O.L.I.D., um conjunto de princípios e boas práticas de programação. O objetivo deste artigo é apresentar seu contexto de criação e uma visão geral dos princípios, que serão apresentados de forma mais detalhada nas próximas publicações.

Contexto e Princípios

S.O.L.I.D. é um acrônimo para cinco princípios de programação. Os princípios não foram construídos por uma só pessoa, mas um dos grandes nomes que falam sobre esse assunto é Robert C. Martin, no artigo Design Principles and Design Patterns.

Cada princípio tem como objetivo criar estruturas de softwares intermediárias que sejam tolerantes a mudanças, fáceis de serem compreendidas por diferentes desenvolvedores e que sirvam como uma base de componentes que possam ser usados em diferentes sistemas.

Abaixo, apresentamos o princípio abordado por cada letra do termo:

Obs: Por classe, leia-se o agrupamento de função e dados. O uso da palavra classe não deve implicar que esses princípios são aplicáveis somente à softwares feitos sob a ótica do paradigma de programação orientada a objetos.

  • [S] ingle Responsibility Principle (Princípio da Responsabilidade Única) — Uma classe só deveria ter um motivo para mudar, ou seja, deveria ter somente uma responsabilidade.
  • [O] pen/Closed Principle (Princípio do Aberto/Fechado) — O comportamento esperado de uma classe é que ela seja aberta para extensão e fechada para modificação.
  • [L] iskov Substitution Principle (Princípio da Substituição de Liskov) — Uma subclasse deveria substituir a classe Pai de modo que não quebre a funcionalidade.
  • [I] nterface Segregation Principle (Princípio da Segregação de Interfaces)— Classes não devem implementar métodos que não irão utilizar.
  • [D] ependency Inversion Principle (Princípio da Inversão de Dependências) — Classes de alto nível não devem depender de classes de baixo nível, ambos devem depender de abstrações.

Motivos para a aplicação desses princípios

  • Melhora na estrutura do código, removendo os chamados design smells;
  • Organização das funções e estruturas de dados dentro de classes e como essas classes devem se conectar;
  • Códigos mais limpos, separando responsabilidades e diminuindo acoplamentos de modo a facilitar na refatoração e estimular o reaproveitamento de código.

E ai, o que achou do post? Comente! No próximo artigo falaremos detalhadamente a respeito do Single Responsibility Principle.

--

--