¿Qué son los principios SOLID?
SOLID son cinco principios de diseño orientado a objetos (SRP, OCP, LSP, ISP, DIP) que hacen tu código más mantenible, flexible y fácil de ampliar.
Origen
Los principios SOLID fueron introducidos por Robert C. Martin, también conocido como Uncle Bob, en su trabajo sobre el diseño orientado a objetos a principios de la década de 2000. Reúnen cinco conceptos de diseño que ayudan a crear sistemas de software más robustos, reduciendo la deuda técnica y facilitando su evolución a lo largo del tiempo.
Definición
SOLID es un acrónimo que representa cinco principios de diseño en la programación orientada a objetos: Responsabilidad Única, Principio Abierto/Cerrado, Sustitución de Liskov, Segregación de Interfaces e Inversión de Dependencias.
Propósito
Estos principios proporcionan un marco para diseñar software que sea fácil de mantener, comprender y expandir, permitiendo a los desarrolladores evitar problemas comunes de diseño y arquitectura.
Responsabilidad Única (SRP)
Una clase debe tener solo una razón para cambiar.
Abierto/Cerrado (OCP)
Las entidades de software deben estar abiertas para extensión, pero cerradas para modificación.
Sustitución de Liskov (LSP)
Los objetos de una superclase deben ser reemplazables con objetos de sus subclases sin afectar la funcionalidad.
Segregación de Interfaces (ISP)
Muchas interfaces específicas para el cliente son mejores que una interfaz de propósito general.
Inversión de Dependencia (DIP)
Los módulos de alto nivel no deben depender de módulos de bajo nivel; ambos deben depender de abstracciones.
Ejemplo
Imagina una clase Factura que calcula importes y, además, los imprime y los envía por correo. Viola la Responsabilidad Única porque tiene varios motivos para cambiar. Separar el cálculo, la impresión y el envío en clases distintas deja un código más limpio: cada pieza se prueba y se modifica por separado, lo que se traduce en menos errores en cada despliegue. Aplicar SOLID es una forma de refactorización continua que reduce la deuda técnica y encaja bien con prácticas iterativas como las que usan los equipos Scrum.
¿Quieres saber más?
Si te interesa saber más acerca de SOLID, hablemos. Me encanta compartir ideas y ayudar a equipos con estos temas. ¡Te leo!
¿Qué son los Three Amigos?
Three Amigos (o "Los Tres Amigos") es una práctica de desarrollo de softwar...
¿Qué es un Backend as a Service (BaaS)?
Backend as a Service (BaaS) es un servicio que te da ya montada la parte de...
¿Qué diferencia un proyecto greenfield de uno legacy?
Greenfield ("campo verde") es un proyecto que arranca de cero, sin código n...
¿Qué es una versión Alpha?
Una versión Alpha es una etapa temprana de un producto de software, que gen...
¿Qué significa DRY?
DRY significa 'Don't Repeat Yourself' (No te Repitas) y es un principio de...