Sé que seguir ciegamente cualquier "buena práctica" puede conducir a una apestosa pila de basura que se adhiere estrictamente a la mejor práctica. Los principios SÓLIDOS son simplemente eso, principios. No se aplican a todas las situaciones, pero siguen siendo muy buenas heurísticas para encontrar posibles mejoras en su código.¿Hay alguna herramienta de análisis estático que informe qué tan cerca se siguen los principios SÓLIDOS?
La desventaja de ellos es que en algún momento requieren un análisis profundo de su código fuente para aplicarlos. Yo, como la mayoría de los programadores, estoy constantemente buscando formas más eficientes de hacer las cosas, así que tengo curiosidad si alguien ha oído hablar de una herramienta de análisis que intenta probar la aplicación de los principios SÓLIDOS (o la falta de ellos).
SRPLa Responsabilidad Individual Principio
Una clase debe tener una sola razón para cambio.
OCPEl abierto-cerrado Principio
entidades de software (clases, módulos, funciones, etc.) deben estar abiertas para extensión, pero cerrado para modificación.
LSPla sustitución Liskov Principio
subtipos debe ser sustituibles por sus tipos base.
ISPLa interfaz Segregación Principio
Los clientes no deben ser forzados a depender en métodos que no utilizan. Las interfaces pertenecen a los clientes, no a las jerarquías .
DIPEl Dependencia Inversión Principio
abstracciones no deben depender de detalles. Los detalles deben depender de abstracciones .
-Desde principios ágiles, patrones y prácticas
* La desventaja de ellos es que en algún momento requieren un análisis profundo de su código fuente para aplicarlos. * Si un análisis del código (independientemente de la profundidad) sería suficiente, tales herramientas serían posibles, sin embargo, investigando el código no es suficiente. – Wolf
@Wolf En el contexto de esa oración en particular, quise decir un análisis humano basado en la comprensión, el conocimiento y la intuición. –
¿Quiere decir patrones que se recuperan del análisis de código humano cuya presencia se verifica más tarde de forma automática? – Wolf