Principios de Desarrollo de Software
PRINCIPIOS DE DESARROLLO DE SOFTWARE
Los principios del desarrollo de
software son técnicas de software que todo desarrollador debería aplicar al
momento de escribir código en los proyectos software en los que participe con
el fin de lograr un código eficiente, legible y de buena calidad.
A continuación algunos de los
principios existentes:
KEEP IT SIMPLE, STUPID (KISS)
Mantenlo simple, estúpido. Este
principio promulga que los sistemas trabajan, se desarrollan y se mantiene
mejor si se construyen simples y se mantienen así durante todo su ciclo de vida
que realizarlo con un nivel alto de complejidad. Por este motivo debe ser un
objetivo que debe estar visible durante todo el proyecto, con el fin de no
complicar las soluciones a los problemas que se deben resolver en el proyecto a
construir.
Al construir un proyecto basado en este
principio el proyecto será:
- Más legible. Esto permite hacer mantenimiento sin tanto impacto en el proyecto.
- Más testeable: Al escribir el código lo más simple posible, será más fácil realizar pruebas sobre el mismo, ya que cada pequeña unidad del código se puede probar atómicamente.
- Más eficiente: Al no tener complejidad innecesaria en el proyecto, este se ejecutará eficientemente.
Martìn Fowler tiene razón al decir lo
siguiente:
“Cualquiera puede escribir código que una máquina pueda entender. Pero solamente un buen programador es capaz de escribir código que otras personas también entiendan”.
“Cualquiera puede escribir código que una máquina pueda entender. Pero solamente un buen programador es capaz de escribir código que otras personas también entiendan”.
YAGNI (You Aren’t Gonna Need it)
Tú no vas a necesitarlo. Este principio
promulga el no desarrollo de lo que no se necesita en el momento, solo por el
simple hecho de pensar que en el futuro se puede utilizar, ese futuro puede
seguir siendo futuro, entonces has perdido el tiempo invertido en escribir
aquella funcionalidad, mientras que en ese mismo tiempo pudiste haberlo
invertido en algo que era realmente necesario y si se fuera a utilizar en el
proyecto. Así sea bien sabido que en el futuro se necesitará, cuando llegue el
momento de utilizarlo, esto puede cambiar y de igual forma lo que escribió el
desarrollador no servirá como él lo había escrito.
HOLLYWOOD
El principio de Hollywood, indica “No
nos llames, nosotros te llamamos”. Este principio lo que busca es reducir la
dependencia entre los componentes software de una aplicación. Siguiendo el
principio “alta cohesiòn y poca dependencia”. Una de las formas de
aplicar este principio es utilizando callbacks y events y uno de los patrones
de software que sigue este principio es el patrón Observer y la otra
alternativa es utilizar IoC (Inversion of Control).
SEPARACIÓN DE RESPONSABILIDADES
El principio de separación de intereses
es fundamental tanto en el diseño arquitectónico de una aplicación software
como en el desarrollo de la misma. Este principio lo que indica es que la
solución software construida debe ser dividida en proyectos y/o secciones donde
cada una de estas tiene un objetivo claro y único que debe ser cumplido por
cada uno de los objetos o componentes que allí se encuentran. Un ejemplo claro
de la violación de este principio, es cuando en interfaz de usuario y en su
código interior se encuentra las reglas de negocio que la aplicación debe
cumplir y a su vez se encuentra el acceso al repositorio de datos. Para dar
solución a este tipo de violación es separar el código en diferentes proyectos
o secciones: Un proyecto para el acceso a datos; allí se construirá todo lo
necesario para poder acceder al repositorio de datos y realizar la
administración de los datos. Otro proyecto que permite gestionar todas las
reglas de negocio que la solución debe cumplir. Y otro proyecto encargado de la
interfaz de usuario y de la interacción entre la aplicación y el usuario.
Un patrón de diseño relacionado con
este principio es el MVC.
Principio DRY (Don’t Repeat Yourself)
Este principio fue introducido por
Andrew Hunt y David Thomas en el libro “El programador pragmático”. Lo que
busca este principio es contribuir a que la deuda técnica no sea alta, ya que
evita las redundancias en el código. También logra una mayor mantenibilidad del
código, pues al realizar algún cambio, el cambio se aplica en una única parte
del código.
Esto se puede encontrar, cuando hay
partes del código que se repiten en una y otra parte, o es muy parecido, no
tiene que ser un código idéntico.
ALTA COHESIÓN, POCO ACOPLAMIENTO
Este más que un principio aunque
debería ser, es un concepto del desarrollo de software orientado a objetos del
que se habla mucho y siempre hay que tenerlo en cuenta en cada una de las
definiciones arquitectónicas y en los desarrollos de software.
COHESIÓN
Este concepto indica en qué medida un
componente de la aplicación cumple con un objetivo específico, con una única
responsabilidad. Este componente tendrá una alta cohesión, siempre y cuando
exista alta relación entre las funcionalidades que allí se encuentran
construidas.
ACOPLAMIENTO
Este concepto indica la dependencia que
existe entre los diferentes componentes software construidos en la aplicación.
Al haber bajo acoplamiento, la aplicación se vuelve más modular, ya que esta no
conoce o conoce muy poco como funciona internamente el componente referenciado.
Comentarios
Publicar un comentario