Desarrollo Del Tema y Conclusión
Desarrollo Del Tema y Conclusión
Desarrollo Del Tema y Conclusión
Para que las aplicaciones, los programas de software y los sitios web funcionen sin problemas,
los programadores, utilizan principios probados. KISS dice que siempre se debe usar la solución
más simple a un problema. Se trata principalmente de hacer que el código sea lo más simple
posible.
No tiene sentido aumentar infinitamente el nivel de abstracción, hay que poder detenerse
en el tiempo
No tiene sentido poner en el proyecto funciones redundantes «en reserva» que algún día
alguien pueda necesitar (aquí el enfoque según el principio YAGNI es más correcto)
Para qué incluir una biblioteca enorme si solo se necesita un par de funciones de ella
La descomposición de algo complejo en componentes simples es un enfoque
arquitectónicamente correcto (aquí KISS se hace eco de DRY)
No siempre se necesita precisión matemática absoluta o detalles extremos: Los datos
pueden y deben procesarse con la precisión suficiente para una solución de alta calidad
del problema, y los detalles se dan en la cantidad necesaria para el usuario, y no en el
volumen máximo posible.
¿Qué Beneficio tiene la implementación de la metodología KISS en nuestros proyectos?
Este principio es especialmente necesario para proyectos de software que son medianos y
grandes. Entre los beneficios se incluyen:
KISS también tiene mucho en común con el principio de separación de interfaces de los cinco
principios SOLID formulados por Robert Martin.
[Principio DRY]
DRY nos recuerda que cada comportamiento repetible en el código debe estar aislado (por
ejemplo, separado en una función) para su reutilización. Cuando tienes exactamente las mismas
dos piezas de código en tu base de código, eso no es bueno, debido a que a menudo conduce a
la desincronización y otros errores, sin mencionar el hecho de que aumenta el tamaño del
programa.
Tan pronto como comienzas a repetirte (por ejemplo, una expresión larga, una serie de
expresiones similares, entidades similares) creas nuevas abstracciones. Seguir el principio de
programación DRY permite lograr una alta capacidad de mantenimiento del proyecto, facilidad
para realizar cambios y pruebas de alta calidad.
Si el código no está duplicado, para cambiar la lógica, basta con hacer correcciones en un solo
lugar y es más fácil probar una función (aunque más compleja), en lugar de un conjunto de
docenas del mismo tipo.
El acceso a una funcionalidad específica debe estar disponible en un solo lugar, unificado y
agrupado de acuerdo con algún principio, y no «disperso» alrededor del sistema en variaciones
arbitrarias. Este enfoque se cruza con el principio de responsabilidad única de los cinco
principios SOLID formulados por Robert Martin.
[Principio YAGNI]
El principio YAGNI o You Aren’t Gonna Need It, es un principio de optimización de trabajo en el
desarrollo de software que establece que los componentes deben añadirse cuando sean
estrictamente necesarios. Este principio forma parte de la filosofía de la llamada programación
extrema (XP), que contribuye a evitar el exceso y la ineficacia y concretar un producto
informático en menor tiempo.
Esta filosofía logra que los desarrolladores desperdicien esfuerzos en características que solo
forman parte de una suposición de su uso en “algún momento”. El principio YAGNI influye para
que el trabajo se realice bajo términos pragmáticos y utilitarios, de manera que los
desarrolladores se enfoquen en las características y componentes realmente necesarios.
El principio YAGNI contribuye a mantener los costes de inversión, los costes de oportunidad y
optimiza el tiempo de implantación. Además, si solo se llevan a cabo los requisitos que deben
implementarse de manera concreta, estas son algunas ventajas:
Se evita la dispersión de funciones.
No se crea «bloatware», es decir, software con funciones que apenas se utilizan o que
no se utilizan en absoluto.
Las funciones que no se implementan no tienen que ser probadas, documentadas y
soportadas. Por tanto, no hay esfuerzo (innecesario).
El beneficio aumenta, porque se elimina el esfuerzo para la implementación de
funciones supuestamente necesarias.
La base de código sigue siendo más «magra» y, por lo tanto, es más fácil de mantener.
El Principio KISS busca la solución más sencilla posible a una complejidad. El principio YAGNI
complementa al KISS planteando la pregunta «¿realmente necesitamos esto?», propiciando una
respuesta más acorde a la orientación de evitar trabajos innecesarios.
[Principio SOLID]
Principios SOLID no es más que un acrónimo que hace mención a los cinco principios de diseño
que se encuentran orientados a objetos (OOD). Cuando estos principios se combinan se facilita
el trabajo de programación para el desarrollo de software de calidad.
La S del acrónimo del que hablamos hoy se refiere a Single Responsibility Principle
(SRP). Según este principio “una clase debería tener una, y solo una, razón para
cambiar”. Es esto, precisamente, “razón para cambiar”, lo que Robert C. Martin identifica
como “responsabilidad”.
El principio de Responsabilidad Única es el más importante y fundamental de SOLID,
muy sencillo de explicar, pero el más difícil de seguir en la práctica.
El propio Bob resume cómo hacerlo: “Gather together the things that change for the
same reasons. Separate those things that change for different reasons” , es decir: “Reúne
las cosas que cambian por las mismas razones. Separa aquellas que cambian por
razones diferentes”.
2. Principio de Abierto/Cerrado
“You should be able to extend a classes behavior, without modifying it.”
La L de SOLID alude al apellido de quien lo creó, Barbara Liskov , y dice que “las clases
derivadas deben poder sustituirse por sus clases base”.
Esto significa que los objetos deben poder ser reemplazados por instancias de sus
subtipos sin alterar el correcto funcionamiento del sistema o lo que es lo mismo: si en un
programa utilizamos cierta clase, deberíamos poder usar cualquiera de sus subclases sin
interferir en la funcionalidad del programa.
Según Robert C. Martin incumplir el Liskov Substitution Principle (LSP) implica violar
también el principio de Abierto/Cerrado.
En el cuarto principio de SOLID, el tío Bob sugiere: “Haz interfaces que sean específicas
para un tipo de cliente”, es decir, para una finalidad concreta.
En este sentido, según el Interface Segregation Principle (ISP), es preferible contar con
muchas interfaces que definan pocos métodos que tener una interface forzada a
implementar muchos métodos a los que no dará uso.
[Conclusión]
Cómo pudimos contemplar en el documento, tenemos distintos principios o pautas a
seguir para conseguir que el código en el que estemos trabajando sea construido de una
manera más limpia, esto con el propósito de facilitarnos la comprensión del software que
estemos realizando. Cada metodología tiene relación entre sí y sobre todo tienen como
base los 5 Principios de la metodología SOLID. Es por esta razón que el uso disciplinario
de estas metodologías es muy importante al momento de trabajar ya que son conductas
que nos ayudan a ahorrar tiempo y dolores de cabeza al tratar con algoritmos o código
que requieran tareas o procesos demasiados complejos.