An open API service indexing awesome lists of open source software.

https://github.com/organization-devxp/solid-principios-tutorial

Repositorio educativo con ejemplos prácticos de los principios SOLID en diseño de software.
https://github.com/organization-devxp/solid-principios-tutorial

principios-solid solid tutorial tutorial-exercises

Last synced: 4 months ago
JSON representation

Repositorio educativo con ejemplos prácticos de los principios SOLID en diseño de software.

Awesome Lists containing this project

README

        

# SOLID-Principios-Tutorial

Bienvenido al repositorio **SOLID-Principios-Tutorial**, un recurso educativo diseñado para ayudarte a comprender y aplicar los principios SOLID en diseño de software. Aquí encontrarás ejemplos prácticos, ejercicios y explicaciones detalladas de cada principio, acompañados de código antes y después de aplicar las buenas prácticas.

## ¿Qué son los principios SOLID?

Los principios SOLID son un conjunto de cinco principios diseñados para mejorar la calidad, mantenibilidad y escalabilidad del software orientado a objetos. Estos principios son:

1. **Single Responsibility Principle (SRP):** Una clase debe tener una única responsabilidad.
2. **Open/Closed Principle (OCP):** Las entidades de software deben estar abiertas para extensión, pero cerradas para modificación.
3. **Liskov Substitution Principle (LSP):** Los objetos de una clase derivada deben poder sustituir a los de la clase base sin alterar el comportamiento esperado.
4. **Interface Segregation Principle (ISP):** Una clase no debe estar obligada a implementar interfaces que no utiliza.
5. **Dependency Inversion Principle (DIP):** Las clases deben depender de abstracciones, no de implementaciones concretas.

## Estructura del Repositorio

Cada principio tiene su propia carpeta con ejemplos prácticos y documentación:

```
SOLID-Principios-Tutorial
├── SRP
│ ├── Antes
│ │ └── ejemplo.js
│ ├── Despues
│ │ └── ejemplo.js
│ ├── PRACTICA
│ │ ├── README.md
│ │ └── ejercicio.js
│ └── README.md
├── OCP
│ ├── Antes
│ │ └── ejemplo.js
│ ├── Despues
│ │ └── ejemplo.js
│ ├── PRACTICA
│ │ ├── README.md
│ │ └── ejercicio.js
│ └── README.md
├── LSP
│ ├── Antes
│ │ └── ejemplo.js
│ ├── Despues
│ │ └── ejemplo.js
│ ├── PRACTICA
│ │ ├── README.md
│ │ └── ejercicio.js
│ └── README.md
├── ISP
│ ├── Antes
│ │ └── ejemplo.js
│ ├── Despues
│ │ └── ejemplo.js
│ ├── PRACTICA
│ │ ├── README.md
│ │ └── ejercicio.js
│ └── README.md
├── DIP
│ ├── Antes
│ │ └── ejemplo.js
│ ├── Despues
│ │ └── ejemplo.js
│ ├── PRACTICA
│ │ ├── README.md
│ │ └── ejercicio.js
│ └── README.md
└── LICENSE
```

## ¿Qué encontrarás aquí?

- **Documentación:** Explicaciones detalladas de cada principio.
- **Ejemplos prácticos:** Código antes y después de aplicar SOLID.
- **Ejercicios:** Desafíos para practicar cada principio.
- **Recursos adicionales:** Enlaces a lecturas recomendadas y herramientas útiles.

## ¿Cómo usar este repositorio?

1. **Clona el repositorio:**
```bash
git clone https://github.com/Organization-DevXP/SOLID-Principios-Tutorial.git
```
```bash
cd SOLID-Principios-Tutorial
```
2. **Explora los ejemplos:**
Navega por las carpetas para ver ejemplos de cada principio.
3. **Prueba el código:**
Ejecuta los ejemplos en tu lenguaje de programación favorito y experimenta con ellos.
4. **Resuelve los ejercicios:**
Practica lo aprendido resolviendo los desafíos incluidos.

## Contribuciones

¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar este repositorio, ya sea con ejemplos en otros lenguajes de programación, ejercicios adicionales o correcciones, siéntete libre de enviar un pull request.

### Cómo contribuir:

1. Haz un fork del repositorio.
2. Crea una rama para tus cambios:
```bash
git checkout -b feature/nueva-mejora
```
3. Realiza tus cambios y haz un commit:
```bash
git commit -m "Agregado ejemplo de LSP en Python"
```
4. Sube tus cambios:
```bash
git push origin feature/nueva-mejora
```
5. Abre un pull request en GitHub.

## Ejercicios Resueltos

En la rama **[ejercicios-resueltos](https://github.com/Organization-DevXP/SOLID-Principios-Tutorial/tree/ejercicios-resueltos)**, puedes encontrar
soluciones detalladas a los ejercicios de cada principio
SOLID. Esta sección te ayudará a entender cómo aplicar
correctamente los principios en el código.

## Licencia

Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.

## Redes Sociales de OrganizationDevXp

Puedes seguirnos o unirte a nuestras comunidades en las siguientes plataformas:

[![Linkedin](https://img.shields.io/badge/LinkedIn-0A66C2?style=social&logo=linkedin)](https://www.linkedin.com/company/organization-devxp)
[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=social&logo=youtube)](https://www.youtube.com/@Organization-DevXP)
[![WhatsApp](https://img.shields.io/badge/WhatsApp-25D366?style=social&logo=whatsapp)](https://chat.whatsapp.com/FfX0fXV4xHzCvFoVFn7ssa)
[![Discord](https://img.shields.io/badge/Discord-7289DA?style=social&logo=discord)](https://discord.com/invite/j3hnJjR8Yd)
[![GitHub](https://img.shields.io/badge/GitHub-181717?style=social&logo=github)](https://github.com/Organization-DevXP)

## Recursos Adicionales

- Video - Youtube - [Curso de PRINCIPIOS SOLID Desde Cero](https://www.youtube.com/watch?v=ASBC5drF-QU&ab_channel=MoureDevbyBraisMoure) - 2hs
- Video - Youtube - [5 Maneras de simplificar tu código JavaScript con SOLID](https://www.youtube.com/watch?v=6PdAOfsPh48&ab_channel=CarlosAzaustre-AprendeJavaScript) - 22min
- Libro -["Clean Code" por Robert C. Martin](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
- [Patrones de diseño de software](https://refactoring.guru/design-patterns)
- [Documentación de SOLID](https://en.wikipedia.org/wiki/SOLID)