¿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.
Want to learn more?
If you'd like to go deeper into SOLID —or bring this kind of training to your team— let's talk. I help teams understand and apply these concepts. I'd love to hear from you!
¿Qué son los Three Amigos?
Three Amigos (o "Los Tres Amigos") es una práctica de desarrollo de softwar...
¿Qué es un merge?
Un merge (fusión) es la operación de unir dos versiones de un archivo, carp...
¿Qué es la terminal?
La terminal (o línea de comandos) es la interfaz de texto desde la que se d...
¿Qué es el principio WET?
WET (Write Everything Twice, "Escribe Todo Dos Veces") es un acrónimo humor...
¿Qué es un Tech Lead (líder técnico)?
Un Tech Lead (TL), o Líder Técnico, es un desarrollador senior que asume la...