{"id":24200073,"url":"https://github.com/organization-devxp/solid-principios-tutorial","last_synced_at":"2025-10-24T19:48:38.411Z","repository":{"id":272103266,"uuid":"915530346","full_name":"Organization-DevXP/SOLID-Principios-Tutorial","owner":"Organization-DevXP","description":"Repositorio educativo con ejemplos prácticos de los principios SOLID en diseño de software.","archived":false,"fork":false,"pushed_at":"2025-01-25T03:47:23.000Z","size":455,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-25T04:23:18.507Z","etag":null,"topics":["principios-solid","solid","tutorial","tutorial-exercises"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Organization-DevXP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-12T04:53:03.000Z","updated_at":"2025-01-25T03:47:26.000Z","dependencies_parsed_at":"2025-01-12T06:23:55.084Z","dependency_job_id":"b16c85b0-354a-41bb-98b4-62414d576be4","html_url":"https://github.com/Organization-DevXP/SOLID-Principios-Tutorial","commit_stats":null,"previous_names":["organization-devxp/solid-principios-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Organization-DevXP%2FSOLID-Principios-Tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Organization-DevXP%2FSOLID-Principios-Tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Organization-DevXP%2FSOLID-Principios-Tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Organization-DevXP%2FSOLID-Principios-Tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Organization-DevXP","download_url":"https://codeload.github.com/Organization-DevXP/SOLID-Principios-Tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241638816,"owners_count":19995270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["principios-solid","solid","tutorial","tutorial-exercises"],"created_at":"2025-01-13T20:40:54.800Z","updated_at":"2025-10-24T19:48:33.379Z","avatar_url":"https://github.com/Organization-DevXP.png","language":"JavaScript","readme":"# SOLID-Principios-Tutorial\n\nBienvenido 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.\n\n## ¿Qué son los principios SOLID?\n\nLos 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:\n\n1. **Single Responsibility Principle (SRP):** Una clase debe tener una única responsabilidad.\n2. **Open/Closed Principle (OCP):** Las entidades de software deben estar abiertas para extensión, pero cerradas para modificación.\n3. **Liskov Substitution Principle (LSP):** Los objetos de una clase derivada deben poder sustituir a los de la clase base sin alterar el comportamiento esperado.\n4. **Interface Segregation Principle (ISP):** Una clase no debe estar obligada a implementar interfaces que no utiliza.\n5. **Dependency Inversion Principle (DIP):** Las clases deben depender de abstracciones, no de implementaciones concretas.\n\n## Estructura del Repositorio\n\nCada principio tiene su propia carpeta con ejemplos prácticos y documentación:\n\n```\nSOLID-Principios-Tutorial\n├── SRP\n│   ├── Antes\n│   │   └── ejemplo.js\n│   ├── Despues\n│   │   └── ejemplo.js\n│   ├── PRACTICA\n│   │   ├── README.md\n│   │   └── ejercicio.js\n│   └── README.md\n├── OCP\n│   ├── Antes\n│   │   └── ejemplo.js\n│   ├── Despues\n│   │   └── ejemplo.js\n│   ├── PRACTICA\n│   │   ├── README.md\n│   │   └── ejercicio.js\n│   └── README.md\n├── LSP\n│   ├── Antes\n│   │   └── ejemplo.js\n│   ├── Despues\n│   │   └── ejemplo.js\n│   ├── PRACTICA\n│   │   ├── README.md\n│   │   └── ejercicio.js\n│   └── README.md\n├── ISP\n│   ├── Antes\n│   │   └── ejemplo.js\n│   ├── Despues\n│   │   └── ejemplo.js\n│   ├── PRACTICA\n│   │   ├── README.md\n│   │   └── ejercicio.js\n│   └── README.md\n├── DIP\n│   ├── Antes\n│   │   └── ejemplo.js\n│   ├── Despues\n│   │   └── ejemplo.js\n│   ├── PRACTICA\n│   │   ├── README.md\n│   │   └── ejercicio.js\n│   └── README.md\n└── LICENSE\n```\n\n## ¿Qué encontrarás aquí?\n\n- **Documentación:** Explicaciones detalladas de cada principio.\n- **Ejemplos prácticos:** Código antes y después de aplicar SOLID.\n- **Ejercicios:** Desafíos para practicar cada principio.\n- **Recursos adicionales:** Enlaces a lecturas recomendadas y herramientas útiles.\n\n## ¿Cómo usar este repositorio?\n\n1. **Clona el repositorio:**\n   ```bash\n   git clone https://github.com/Organization-DevXP/SOLID-Principios-Tutorial.git\n   ```\n   ```bash\n    cd SOLID-Principios-Tutorial\n   ```\n2. **Explora los ejemplos:**\n   Navega por las carpetas para ver ejemplos de cada principio.\n3. **Prueba el código:**\n   Ejecuta los ejemplos en tu lenguaje de programación favorito y experimenta con ellos.\n4. **Resuelve los ejercicios:**\n   Practica lo aprendido resolviendo los desafíos incluidos.\n\n## Contribuciones\n\n¡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.\n\n### Cómo contribuir:\n\n1. Haz un fork del repositorio.\n2. Crea una rama para tus cambios:\n   ```bash\n   git checkout -b feature/nueva-mejora\n   ```\n3. Realiza tus cambios y haz un commit:\n   ```bash\n   git commit -m \"Agregado ejemplo de LSP en Python\"\n   ```\n4. Sube tus cambios:\n   ```bash\n   git push origin feature/nueva-mejora\n   ```\n5. Abre un pull request en GitHub.\n\n## Ejercicios Resueltos\n\nEn la rama **[ejercicios-resueltos](https://github.com/Organization-DevXP/SOLID-Principios-Tutorial/tree/ejercicios-resueltos)**, puedes encontrar\nsoluciones detalladas a los ejercicios de cada principio\nSOLID. Esta sección te ayudará a entender cómo aplicar\ncorrectamente los principios en el código.\n\n## Licencia\n\nEste proyecto está licenciado bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.\n\n## Redes Sociales de OrganizationDevXp\n\nPuedes seguirnos o unirte a nuestras comunidades en las siguientes plataformas:\n\n [![Linkedin](https://img.shields.io/badge/LinkedIn-0A66C2?style=social\u0026logo=linkedin)](https://www.linkedin.com/company/organization-devxp)\n [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=social\u0026logo=youtube)](https://www.youtube.com/@Organization-DevXP)\n [![WhatsApp](https://img.shields.io/badge/WhatsApp-25D366?style=social\u0026logo=whatsapp)](https://chat.whatsapp.com/FfX0fXV4xHzCvFoVFn7ssa)\n [![Discord](https://img.shields.io/badge/Discord-7289DA?style=social\u0026logo=discord)](https://discord.com/invite/j3hnJjR8Yd)\n [![GitHub](https://img.shields.io/badge/GitHub-181717?style=social\u0026logo=github)](https://github.com/Organization-DevXP)\n\n\n## Recursos Adicionales\n\n- Video - Youtube - [Curso de PRINCIPIOS SOLID Desde Cero](https://www.youtube.com/watch?v=ASBC5drF-QU\u0026ab_channel=MoureDevbyBraisMoure) - 2hs\n- Video - Youtube - [5 Maneras de simplificar tu código JavaScript con SOLID](https://www.youtube.com/watch?v=6PdAOfsPh48\u0026ab_channel=CarlosAzaustre-AprendeJavaScript) - 22min\n- Libro -[\"Clean Code\" por Robert C. Martin](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)\n- [Patrones de diseño de software](https://refactoring.guru/design-patterns)\n- [Documentación de SOLID](https://en.wikipedia.org/wiki/SOLID)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forganization-devxp%2Fsolid-principios-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forganization-devxp%2Fsolid-principios-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forganization-devxp%2Fsolid-principios-tutorial/lists"}