Principios SOLID: por qué usarlos en tu desarrollo de software

Imagen de Principios Spolid fundida con un circuito electrónico

Principios SOLID es un conjunto de principios que se utilizan en el desarrollo de software para hacer que los diseños sean más comprensibles, flexibles, escalables y resistentes a los cambios.

Los Principios Solid indican cómo organizar funciones y estructuras de datos en componentes y cómo dichos componentes deben estar interconectados.

Normalmente estos componentes suelen ser clases, aunque esto no implica que dichos principios sólo sean aplicables a ellas. Por el contrario, los principios SOLID se pueden aplicar a cada producto de software.

De hecho deberían aplicarse.

En esta nota te contamos cuáles son esos principios, repasamos el origen del concepto, su importancia y los beneficios de utilizarlos junto al ingeniero de software y jefe de proyectos Fusiona, José Estévez.

Qué son los Principios SOLID

SOLID es un acrónimo que representa cinco principios utilizados por ingenieros de software y desarrolladores. 

Los principios son los siguientes:

  • Single Responsibility: Responsabilidad única
  • Open/Closed: Abierto/Cerrado
  • Liskov substitution: Sustitución de Liskov
  • Interface segregation: Segregación de interfaz
  • Dependency Inversion: Inversión de dependencia

Historia del concepto Principios SOLID

Fue el ingeniero de software Robert C. Martin quien desarrolló los Principios sólidos en un ensayo publicado el año 2000 bajo el título «Principios de diseño y patrones de diseño».

Más tarde, el experto en Legacy Code y autor del libro “Working Effectively with Legacy Code” Michael Feathers, acuñó el acrónimo SOLID.

En su ensayo, Martin (también conocido como Uncle Bob) señaló que el software exitoso cambiará y se desarrollará continuamente volviéndose cada vez más complejo.

Sin principios de diseño sólidos, esta evolución en el tiempo generará programas “rígidos y frágiles” y para evitar un escenario de diseños problemáticos, se utilizan los Principios SOLID.

Robert C. Martin (Uncle Bob).

“Estos principios nacieron con el objetivo de que el código que se escribe sea legible y mantenible en el tiempo. Situación que impacta directamente en lo que llamamos deuda técnica, la que puede ser sumamente costosa para la organización e incluso para el mismo desarrollador”, señala José Estévez.

Antes de continuar con los Principios SOLID propiamente tal, precisemos que en el mundo del desarrollo de software, una deuda técnica es falta de calidad en el código de un proyecto de software que generará sobrecostos en el futuro. 

Entonces, al aplicar Principios SOLID, estamos reduciendo la posibilidad de pagar los costos de esa deuda técnica en el futuro.

Los 5 Principios Sólidos (SOLID)

1-Single Responsibility: Responsabilidad única

Una clase debe tener una y solo una razón para cambiar, lo que significa que una clase debe tener solo un trabajo”. Los malos diseños de software se identifican cuando hay varias entidades que cambian por diferentes motivos. Seguir este principio significa que cada clase debe resolver un solo problema y se puede aplicar a clases, componentes de software y microservicios.

2- Open/Closed: Abierto/Cerrado

“Los objetos o entidades deben estar abiertos para la extensión, pero cerrados para la modificación”. En simple, este principio requiere que los módulos se escriban de manera que puedan ampliarse, sin necesidad de modificarlos. Uncle Bob refuerza: «Los desarrolladores de software deben poder extender el comportamiento de una clase sin modificarlo».

 3-Liskov Substitution: Sustitución de Liskov

“Cada subclase o clase derivada debe ser sustituible por su clase base o padre”. Este principio requiere que cada clase derivada sea sustituible por su clase principal o clase padre. El principio lleva el nombre de Barbara Liskov, quien introdujo el concepto en 1987.

4-Interface segregation: Segregación de interfaz.

“Nunca se debe obligar a un cliente a implementar una interfaz que no usa y no se debe obligar a los clientes a depender de métodos que no usan”. El principio de segregación de interfaces nos dice que es mejor tener muchas interfaces más pequeñas que algunas más grandes. 

5-Dependency Inversion: Inversión de dependencia

“El módulo de alto nivel no debe depender del módulo de bajo nivel, sino que deben depender de abstracciones”.  Martin señala además, que “las abstracciones no deberían depender de los detalles. Los detalles deberían depender de las abstracciones”.

Beneficios de utilizar Principios SOLID

El principal beneficio de seguir los Principios SOLID en el desarrollo es la obtención de mejor código para legibilidad, el mantenimiento y testeo.

Un mejor código facilita la colaboración entre desarrolladores quienes pueden ampliar, modificar y probar sus programas con menos complicaciones.

En definitiva, la implementación de los Principios Solid en el desarrollo de software permitirá que tu empresa o proyecto cumpla estándares globales de la industria.

“Es bastante amplio el tema de SOLID en general, para quienes deseen profundizar recomiendo el libro Clean Javascript que explica al detalle qué es y cómo aplicarlo”, finaliza Estevez. 

La invitación es a conocerlos, manejarlos e implementarlos. Si bien al principio puede parecer abrumador, crear y trabajar con un un código que cumple con los Principios SOLID evitará problemas y costos extra futuros y creará programas adaptables, eficaces, ágiles y sólidos en el tiempo.

Fusiona Avatar

Si quieres saber cómo podemos ayudarte

Contactanos

Artículos Relacionados