SOLID - eTecnologia/projeto-genesis GitHub Wiki

SOLID são 5 princípios da programação orientada a objetos que facilitam no desenvolvimento de softwares, tornando-os fáceis de manter e estender. Esses princípios podem ser aplicados a qualquer linguagem de orienta a objetos (POO).

O SOLID é um acrônimo criado por criado por Michael Feathers a partir dos cinco primeiros princípios ("five first principles") da programação orientada à objetos identificados por Robert C. Martin no início dos anos 2000.

SOLID: Os 5 princípios da Programação Orientada a Objetos
S - Single Responsiblity Principle - Princípio da responsabilidade única
O - Open-Closed Principle - Princípio Aberto-Fechado
L - Liskov Substitution Principle - Princípio da substituição de Liskov
I - Interface Segregation Principle - Princípio da Segregação da Interface
D - Dependency Inversion Principle - Princípio da inversão da dependência

Esses princípios ajudam escrever códigos mais limpos, separando responsabilidades, reduzindo acoplamentos, facilitando na refatoração e estimulando o reuso do código.

Esses princípios ainda têm como objetivo obter as vantagens da orientação a objetos através de um código de alta qualidade e permita:
• Leitura, testes e manutenção fáceis
• Extensibilidade com o menor esforço possível
• Reuso de código
• Maximização do tempo de utilização do código

Existem muitas formas de aprender sobre SOLID, mas a principal referência é o livro:

Resenha:
Princípios, Padrões e Práticas Ágeis em C#, do Robert C. Martin, é um livro interessante onde ele discutite os princípios SOLID com um alto grau de profundidade.
O livro contém diversos estudos de caso que ilustram os fundamentos do desenvolvimento e do projeto ágil, e mostram a evolução de modelos UML em códigos C# reais.
Ainda esta obra fornece uma visão completa sobre os princípios ágeis e as práticas da Programação Extrema (XP); o desenvolvimento baseado em testes; a refatoração com testes de unidade; a programação em pares; e muito mais.
Lembre-que Nem só de conhecimento teórico vive um desenvolvedor, em software, a experiência prática é importante, portanto faça exemplos e exercícios para entender e aprender como aplicar SOLID na prática.


Para ir além:
Vídeo:
SOLID fica FÁCIL com Essas Ilustrações (Filipe Deschamps)

Tutoriais:
The SOLID Principles in Pictures
Java
A Solid Guide to SOLID Principles with Java
SOLID Principles: melhorando o design do seu código em Java
C#
SOLID Design Principles in C#
SOLID Principles In C#
PHP
SOLID PHP Exemplos no Github (inglês)
SOLID Principles Simplified with Examples in PHP
SOLID Principles with PHP examples
C++
Single Responsibility Principle in C++
SOLID Principles in modern C++

⚠️ **GitHub.com Fallback** ⚠️