¿Qué son los principios SOLID?

Aun que originalmente se plantearon para la programación orientada a objeto son un conjunto de pricipios del diseño de software que buscan mejorar la estructura, mantenibilidad y flexibilidad del código allá donde queramos aplicarlo. Estos principios fueron popularizados por Robert C. Martin, quien los mencionó por primera vez en los años 90 aun que no podemos decir que fuese el quien los inventó, los organizó y divulgó como una guía de buenas prácticas. Desde entonces, los principios SOLID se han convertido en una especie de biblia para muchos desarrolladores.

Al explorar estos principios, me di cuenta que en el mundo del desarrollo moderno, donde los proyectos suelen escalar rápidamente y los equipos de trabajo son multidisciplinarios, los principios SOLID son una especie de brújula que garantiza que el código sea flexible, robusto y fácil de modificar sin riesgo de romper funcionalidades. Además, permiten trabajar de forma colaborativa, asegurando que cada miembro del equipo pueda entender, extender o refactorizar el código sin grandes complicaciones.

¡Dame una «S»!

Single Responsibility Principle (SRP)

«Principio de responsabilidad única»: Cada clase debe tener una única razón para cambiar, es decir, debe estar encargada de una única funcionalidad. Me di cuenta de que, al aplicar este principio, se logra un código mucho más fácil de entender y modificar. Si cada pieza tiene su propia función bien definida, es más sencillo hacer ajustes sin miedo a romper algo más.

¡Dame una «O»!

Open/Closed Principle (OCP)

«Principio de abierto/cerrado»: El software debe estar abierto para la extensión, pero cerrado para la modificación. Al principio, esto suena contradictorio, pero en realidad, se refiere a que deberíamos poder añadir nuevas funcionalidades sin tener que cambiar el código existente. Esto me hizo pensar en cómo algunas veces, al intentar arreglar un problema o añadir algo nuevo, terminamos complicando el código original. Este principio busca evitar justo eso.

¡Dame una «L»!

Liskov Substitution Principle (LSP)

«Principio de sustitución de Liskov»: Las clases derivadas deben poder sustituir a sus clases base sin alterar el comportamiento del programa. Aquí entendí la importancia de la herencia bien utilizada. Si una clase hija no puede reemplazar a su padre sin problemas, es una señal de que hay un mal diseño.

¡Dame una «I»!

Interface Segregation Principle (ISP)

«Principio de segregación de interfaces»: Los clientes no deberían depender de interfaces que no usan. Esto me hizo reflexionar sobre cómo, a veces, al crear una interfaz demasiado amplia, se obliga a las clases a implementar métodos que no necesitan. El principio ISP promueve la creación de interfaces más específicas y acotadas, lo que hace el código más limpio y manejable.

¡Dame una «D»!

Dependency Inversion Principle (DIP)

«Principio de inversión de dependencias»: Los módulos de alto nivel no deben depender de módulos de bajo nivel; ambos deben depender de abstracciones. Me di cuenta de que esto ayuda a evitar que el código esté fuertemente acoplado, lo que lo hace más flexible y fácil de cambiar o escalar en el futuro.

Conclusión

Nos ofrecen una base sólida para mejorar el diseño de software, haciéndolo más flexible, mantenible y fácil de escalar. Aplicarlos puede reducir la complejidad del código, facilitar su lectura y permitir modificaciones sin afectar otras partes del sistema.

Adoptar SOLID requiere un cambio de mentalidad y un enfoque consciente en cómo estructuramos nuestras clases, módulos o componentes. Al principio enfócate en uno o dos principios al diseñar o refactorizar código, y observa cómo impactan la calidad. A largo plazo no solo verás su beneficio en el trabajo que desarrollas, si no para destacarte sobre otros candidatos en entrevista o como referencia en el trabajo cooperativo.

Si estas interesado en mejorar tu calidad de código te puede interesar algunos de estos otros articulos:

Iniciación al uso de Throttle y Debounce con JavaScript
Trabajando con callback, promise, async y await
Guia sobre Event Loop en JavaScript

Iniciación a los principios SOLID

Referencias

Al crear este artículo sobre los principios SOLID, quería evitar caer en los típicos tópicos, como el libro «Clean Code» de Robert C. Martin, aunque reconozco su relevancia. En mi caso y por la forma en la que consumimos información hoy en día, lo que realmente me ayudó a aclarar los conceptos fue el video de YouTube de Carlos Azaustre, titulado «JavaScript y Principios SOLID ¡Entiende y Aplica con Ejemplos Prácticos Reales!«. Este video me permitió ver ejemplos prácticos y aplicados en código Frontend que es mi especialidad, lo que hizo entender los principios de manera más específica.

Specialist Software Developer Lead

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Instagram