sábado, 22 de agosto de 2020

Principios SOLID em Imagens

A maioria dos desenvolvedores utilizam a POO - Programação Orientada à Objeto e devem ter ouvido falar sobre SOLID, essa sigla é acrônimo para (iniciais do nome em inglês) para os principios para construção de software com qualidade e manutentabilidade. 

Para facilitar a compreensão desses conceitos, foi criado as imagens abaixo, afinal de contas nada melhor que desenhar para se fazer entender.

Princípio da responsabilidade única - (Single-responsibility principle)

Uma classe, microsserviços, componentes devem ser responsável por apenas uma atividade. Utilizando esse principio você poderá garantir que qualquer alteração que venha a acontecer no código irá impactar somente seus dependentes diretos. 

Princípio aberto-fechado (Open–closed principle)

As entidades de (classes, módulos, funções) devem estar abertas para extensão, entretanto  fechado para modificação. Utilizando esse principio podemos garantir que as alterações sendo realizadas através de extensão da entidade base nada será afetado no contexto dos códigos que utilizam a classe original. 

Princípio da substituição de Liskov (Liskov substitution principle)

O objetivo desse princípio é verificar que uma subclasse poderá ser substituída pela sua classe base sem erros. O principio é uma homenagem a Barbara Liskov, ela definiu que "se S é um subtipo de T, então os objetos do tipo T, em um programa, podem ser substituídos pelos objetos de tipo S sem que seja necessário alterar as propriedades deste programa".

Princípio de segregação de Interface (Interface segregation principle)

Crie interfaces refinadas e específicas, porque elas são melhores que interfaces genéricas. Não devemos ser forçados a depender das interfaces que não iremos utilizar. Esse princípio lida com as desvantagens da implementação de grandes interfaces únicas.

Princípio da inversão de dependência (Dependency inversion principle)

Chega um momento no desenvolvimento de software em que nosso aplicativo será amplamente composto por módulos. Quando isso acontece, precisamos esclarecer as coisas usando a injeção de dependência. De uma forma objetiva o princípio nos faz entender que sempre devemos depender de abstrações e não das implementações.

Todos os desenvolvedores devem seguir esses cinco princípios, porque eles irão garantir um código mais limpo, eficiente e mais fácil de ser testado.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil

As imagens são traduções das orignais do artigo de Ugonna Thelma em https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898