3. Historia y origen del acrónimo SOLID

El acrónimo SOLID sintetiza cinco principios que definieron la forma moderna de programar orientado a objetos. Su historia recorre investigaciones académicas, la experiencia acumulada en la industria y la necesidad urgente de producir software flexible.

Conocer el origen de estos principios ayuda a entender por qué se volvieron una referencia obligada. No nacieron como teoría pura; surgieron para solucionar problemas concretos en proyectos reales, en una época donde la modularidad y las pruebas automatizadas apenas comenzaban a masificarse.

3.1 Antecedentes en la década de 1990

Los años noventa fueron un laboratorio de ideas para la programación orientada a objetos. Lenguajes como Smalltalk, C++ y posteriormente Java impulsaron el paradigma OO en empresas grandes, pero también mostraron sus dilemas: jerarquías de clases rígidas, herencia mal aplicada y módulos difíciles de mantener.

En ese contexto emergieron referentes como Barbara Liskov, Bertrand Meyer y Kent Beck, cuyas investigaciones sobre sustitución, contratos y pruebas generaron fundamentos para lo que luego sería SOLID.

3.2 Robert C. Martin y la formulación inicial

Robert C. Martin, conocido como "Uncle Bob", comenzó a recopilar buenas prácticas a partir de su trabajo como consultor y educador. En 1995 presentó una serie de artículos sobre los principios del diseño orientado a objetos. En 2000 publicó Design Principles and Design Patterns, donde delineó cinco ideas clave que más tarde reorganizó bajo el acrónimo SOLID.

3.3 Nacimiento del acrónimo

El término SOLID aparece por primera vez en 2004, atribuido a Michael Feathers, colega de Martin, quien reordenó los principios para formar una palabra fácil de recordar. Cada letra coincidió con una pauta ya difundida: SRP, OCP, LSP, ISP y DIP.

3.4 Cronología de eventos destacados

  • 1987: Barbara Liskov presenta en la OOPSLA el concepto de sustitución que luego daría lugar al LSP.
  • 1988: Bertrand Meyer publica Object-Oriented Software Construction, donde describe el principio abierto/cerrado.
  • 1995: Robert C. Martin divulga sus primeros artículos sobre estabilidad y diseño OO.
  • 2000: aparece el paper Design Principles and Design Patterns.
  • 2004: Michael Feathers acuña el acrónimo SOLID en la lista de correo Extreme Programming.
  • 2009: Martin publica Clean Code, popularizando las prácticas en equipos ágiles.
  • 2010+: conferencias, blogs y cursos adoptan SOLID como guía para proyectos en Java, C#, Ruby y otros lenguajes OO.

3.5 Influencias externas y metodologías ágiles

El surgimiento de Extreme Programming (XP) y más tarde de la filosofía ágil reforzó la necesidad de principios que facilitaran iteraciones cortas. SOLID se convirtió en un puente entre la teoría OO y la práctica diaria de equipos que iteran con pruebas automatizadas, integración continua y entregas frecuentes.

3.6 Impacto en la industria del software

Los principios SOLID influyeron en frameworks populares escritos en Java y C#, que adoptaron diseños basados en interfaces, inyección de dependencias y componentes extensibles. Gracias a ellos, arquitecturas como Spring o .NET fomentaron el desacoplamiento y el testeo automatizado.

Organizaciones de todos los tamaños incluyeron SOLID en sus guías de revisión de código, manuales de incorporación y programas de formación interna. Hoy sigue siendo un punto de referencia incluso en paradigmas híbridos que combinan OO con programación funcional.

3.7 Ejemplo ilustrativo en Java

Para mostrar cómo evolucionó la mentalidad, veamos un fragmento de código que refleja la adopción del Principio de Inversión de Dependencias, una de las ideas centrales difundidas por Martin.

interface PersistenciaPedidos {
    void guardar(Pedido pedido);
}

class PedidoService {
    private final PersistenciaPedidos persistencia;

    PedidoService(PersistenciaPedidos persistencia) {
        this.persistencia = persistencia;
    }

    void procesar(Pedido pedido) {
        // reglas de negocio
        persistencia.guardar(pedido);
    }
}

Pedido representa una entidad del dominio con los datos necesarios para procesar la solicitud; su implementación concreta queda aislada del servicio gracias a la interfaz PersistenciaPedidos.

El patrón fue desarrollado a principios de los 2000 para evitar acoplamientos rígidos. Su difusión masiva coincide con la consolidación del acrónimo SOLID y muestra cómo la industria adoptó interfaces y dependencias invertidas como estándar.

3.8 Legado y evolución continua

Aunque SOLID nació en un contexto dominado por clases y objetos, sus principios siguen vigentes en microservicios, diseño guiado por dominios y combinaciones con paradigmas funcionales. La historia de SOLID demuestra que las buenas prácticas se construyen a partir de la experiencia colectiva y que el diseño orientado a objetos todavía ofrece lecciones valiosas para el desarrollo de software moderno.