Este repositório contém códigos em TypeScript com exemplos práticos de cada um dos princípios do SOLID, todos cobertos por testes unitários e de integração. Ele foi criado com o objetivo de servir como suporte ao artigo "Introdução ao SOLID: Princípios S.O.L.I.D." escrito por Gabriel H. Silvestre, o qual também é o autor deste repositório.
Este repositório está em construção. Novos exemplos serão adicionados em breve.
SOLID é um acrônimo que representa cinco princípios fundamentais da programação orientada a objetos e design de software. Esses princípios foram introduzidos por Robert C. Martin e são amplamente adotados na indústria de desenvolvimento de software. Eles visam criar código mais legível, flexível, extensível e de fácil manutenção.
Os cinco princípios SOLID são:
- S - Princípio da Responsabilidade Única (SRP) - Uma classe deve ter apenas um motivo para mudar.
- O - Princípio Aberto/Fechado (OCP) - Entidades de software (classes, módulos, funções) devem ser abertas para extensão, mas fechadas para modificação.
- L - Princípio da Substituição de Liskov (LSP) - Objetos de uma classe derivada devem ser substituíveis por objetos de sua classe base sem afetar a corretude do programa.
- I - Princípio da Segregação de Interface (ISP) - Muitas interfaces específicas são melhores do que uma única interface geral.
- D - Princípio da Inversão de Dependência (DIP) - Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações. Detalhes devem depender de abstrações, e não o contrário.
O repositório está organizado da seguinte maneira:
solid-examples/
|-- src/
| |-- SinglePrinciple.ts
| |-- OpenClosed.ts
| |-- LiskovSubstitution.ts
| |-- InterfaceSegregation.ts
| |-- DependencyInversion.ts
|
|-- __tests__/
| -- jest/
| |-- SinglePrinciple.test.ts
| |-- OpenClosed.test.ts
| |-- LiskovSubstitution.test.ts
| |-- InterfaceSegregation.test.ts
| |-- DependencyInversion.test.ts
Cada arquivo dentro de src/
representa um dos princípios SOLID e contém exemplos práticos em TypeScript que ilustram o princípio em questão. Por exemplo, src/SinglePrinciple/
contém exemplos que seguem o Princípio da Responsabilidade Única.
Os testes correspondentes para cada exemplo estão localizados no arquivo apropriado dentro de __tests__/
.
Para executar os exemplos e os testes deste repositório, siga as etapas abaixo:
- Certifique-se de ter o Node.js (LTS) instalado em seu sistema.
- Clone este repositório em sua máquina local usando o seguinte comando:
git clone https://github.com/gabrielh-silvestre/solid-examples.git
- Navegue para o diretório do repositório:
cd solid-examples
- Instale as dependências necessárias:
npm install
- Execute os exemplos para cada princípio individualmente:
npm run solid:s
npm run solid:o
npm run solid:l
npm run solid:i
npm run solid:d
- Execute os testes para cada princípio individualmente:
npm test Single*
npm test Open*
npm test Liskov*
npm test Interface*
npm test Dependency*
Se você encontrar algum problema, tiver sugestões ou desejar adicionar mais exemplos, fique à vontade para abrir uma issue. Sua contribuição é muito bem-vinda!
Esperamos que este repositório seja útil para entender os princípios SOLID e como aplicá-los em seus projetos. Agradecemos por sua visita e interesse em nosso trabalho!
Generated by ChatGPT