Las técnicas se convierten en principios si están ampliamente aceptadas, se practican y se demuestra su utilidad en cualquier sector. Estos principios se convierten en soluciones para que los diseños de software sean más comprensibles, flexibles y mantenibles. En esta sección trataremos los principios de diseño SOLID, KISS y DRY.
Los principios SOLID son un subconjunto de muchos principios promovidos por el ingeniero de software e instructor estadounidense Robert C. Martin. Estos principios se han convertido en principios estándar de facto en el mundo de la programación orientada a objetos y han pasado a formar parte de la filosofía central de otras metodologías y paradigmas.
SOLID es un acrónimo de los cinco principios siguientes:
Con DRY, un sistema debe ser diseñado de tal manera que la implementación de una característica o un patrón no debe repetirse en múltiples lugares. Esto supondría una sobrecarga de mantenimiento, ya que un cambio en los requisitos haría necesaria una modificación en múltiples lugares. Si no se realiza una actualización necesaria en un lugar por error, el comportamiento del sistema será incoherente. En lugar de ello, la característica debe estar envuelta en un paquete y debe ser reutilizada en todos los lugares. En el caso de una base de datos, hay que considerar el uso de la normalización de datos para reducir la redundancia:
Esta estrategia ayuda a reducir la redundancia y a promover la reutilización. Este principio también ayuda a la cultura de una organización, fomentando una mayor colaboración.
Con KISS, un sistema debe diseñarse de la forma más sencilla posible, evitando diseños complicados, algoritmos, nuevas tecnologías no probadas, etc. Hay que centrarse en aprovechar los conceptos correctos de POO y reutilizar patrones y principios probados. Incluya cosas nuevas o no simples sólo si es necesario y añade valor a la implementación.
Si lo haces de forma sencilla, podrás hacer mejor lo siguiente:
Evitar errores en el diseño/desarrollo
Mantener el tren en marcha (siempre hay un equipo cuyo trabajo es mantener el sistema, aunque no sea el equipo que lo desarrolló en primer lugar)
Lea y comprenda su sistema y su código (su sistema y su código tienen que ser comprensibles para las personas que son nuevas en él o para las que lo utilicen en un futuro lejano)
Hacer una gestión de cambios mejor y menos propensa a errores