Tengo una aplicación Web que podría calificarse en todo sentido como una web normal. Una WebApp que vive en un pacífico hosting en un data center empresarial, donde se ha desarrollado al igual que otras tantas aplicaciones. Pero ese día no fue para nada normal: nuestra aplicación debería subir a la nube y aguantar 100 millones de usuarios
He de reconocer que el trabajo de Uncle Bob (Robert C. Martin) me ayuda a ser mejor programador. Cada vez que leo uno de sus libros o veo una de sus charlas, aprendo algo. Incluso si no es la primera vez que lo hago. Y los principios S.O.L.I.D. no son una excepción
La D de SOLID se refiere al principio de inversión de dependencia o DIP por sus siglas en inglés (Dependency Inversion Principle). Se puede resumir con que una clase debe depender de las abstracciones, no de las concreciones. Aunque Robert C. Martin es mucho más específico y realiza una definición dividida en dos partes
La I de SOLID se refiere al principio de segregación de interfaz o ISP por sus siglas en inglés (Interface Segregation Principle). Se puede definir como que muchas interfaces específicas son mejores que una interfaz de propósito general. O como diría Robert C. Martin, “los clientes no deben ser forzados a depender de interfaces que no utilizan”
La L de SOLID se refiere al principio de sustitución de Liskov o LSP por sus siglas en inglés (Liskov Substitution Principle). Se puede definir como que cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas. Una definición muy compleja para un concepto mucho más simple. Pero con una historia algo truculenta detrás