Repositorio Gratis Inactivo

JS Design Principles (SOLID en JavaScript funcional)

Para practicar cómo aplicar los principios SOLID a un estilo funcional en JavaScript mediante ejercicios de refactorización.

Ejercicios para aplicar los principios SOLID a JavaScript funcional sobre Node.js, con tests en Jest.

Notas y contexto

Qué es

JS Design Principles es un repositorio educativo de Jason Gorman (Codemanship) que porta los cinco principios SOLID a un estilo de JavaScript funcional sobre Node.js. Es material de taller: una colección de ejercicios de refactorización pensados para practicar, no una librería ni una API para usar en producción. Cada principio se acompaña de tests con Jest, y el repo va ligado a una entrada del blog de Codemanship que explica las soluciones.

Para qué sirve

  • Entender cómo se traducen los principios SOLID (originalmente orientados a objetos) a un estilo funcional con funciones y módulos.
  • Practicar refactorización guiada por tests resolviendo los cinco ejercicios propuestos.
  • Servir de material de apoyo en formaciones o sesiones de estudio sobre diseño de software.
  • Ver ejemplos concretos de cada principio (responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias).

Cuándo usarlo

Es útil cuando ya conoces SOLID en un lenguaje orientado a objetos y quieres ver cómo se aplican esas ideas en programación funcional, o cuando preparas una sesión de práctica en equipo. No es una dependencia que se instale en un proyecto: son ejercicios para clonar, resolver y comparar con las soluciones del autor. Si buscas teoría más extensa, conviene combinarlo con la entrada de blog enlazada como material adicional.

Ejemplo

Flujo típico de trabajo con el repositorio:

git clone https://github.com/jasongorman/JS_design_principles.git
cd JS_design_principles
npm install
npm test

Cada ejercicio plantea un objetivo de refactorización. Por ejemplo, el de Abierto/Cerrado pide extender la librería de vídeos para que tengan clasificación por edad (18, 15, 12, U) y los clientes no puedan alquilar vídeos para los que no tengan edad, todo ello SIN editar ningún archivo de código existente. Resuelves el código, ejecutas Jest y verificas que los tests pasan.

Puntos clave

  • Cubre los cinco principios SOLID adaptados a un enfoque funcional, incluida una reflexión sobre que la segregación de interfaces no aplica de forma directa en FP pero existe “en espíritu”.
  • Enfoque práctico basado en ejercicios y tests con Jest, no en explicaciones teóricas largas.
  • Procede de Codemanship y su taller de principios de diseño de software, impartido por Jason Gorman.

Ten en cuenta

Es un “primer borrador” (first pass) de material de taller, con pocos commits y sin actividad reciente; trátalo como recurso de aprendizaje, no como código mantenido para reutilizar. El propio autor advierte que, salvo en el ejercicio de Abierto/Cerrado, puedes refactorizar también el código de los tests, porque no son APIs. No se indica una licencia explícita en el repositorio, así que conviene contactar con el autor antes de reutilizar el código más allá del estudio personal.

Volver al directorio
Volver al directorio