SantiagoGnzlz / banco-poo

Trabajo de POO basado en una simulación de un banco, una bolsa y un broker
0 stars 3 forks source link

Code smell: Large method #20

Open danielon20 opened 4 years ago

danielon20 commented 4 years ago

En la clase nueva que hemos implementado ‘DecodificadorCadena’, se puede observar sus dos métodos (‘recepcioncadenaCodificadaCompraDesdeElBroker’ y ‘recepcioncadenaCodificadaVentaDesdeElBroker’) tienen una gran cantidad de líneas de código (162 y 176 líneas respectivamente), por lo que dichos métodos se los considera excesivamente largos; esto da origen al code smell ‘Large method’. Estos métodos excesivamente largos, pueden generar confusión y algunos problemas más adelante. Un futuro problema sería cuando nuestro programa tiene un error semántico (Es cuando la sintaxis del código es correcta, pero la semántica o el significado no es el que se pretendía), el cual, a diferencia de un error de sintaxis, es indetectable para nuestro compilador. Por este motivo, nosotros tendríamos que analizar cada línea para encontrar la falla, lo cual provoca un trabajo arduo y molestoso. Métodos largos: image …….. …….. …….. …….. image

image …….. …….. …….. …….. image

Técnica de refactorización: Extract method: La técnica que se usara consiste en mover ciertas líneas de nuestro método largo a un o unos nuevos métodos, los cuales nos ayudaran a reducir la cantidad de operaciones que debía realizar el método originalmente. En este caso los nuevos métodos que se implementaron fueron: ‘decodificarVariables’, ‘recorrerEmpresas’, ‘comprobarEmpresa’ y ‘mostrarDatosGenerales’. image image image image

Los beneficios de esta técnica de refactorización es que los métodos ‘recepcioncadenaCodificadaCompraDesdeElBroker’ y ‘recepcioncadenaCodificadaVentaDesdeElBroker’ tendrán una cantidad reducida de código, lo cual permitirá un mejor manejo del mismo; y de esta manera será más sencillo modificar alguno de los métodos, o encontrar errores semánticos. image ... image

image ... image

Originalmente los métodos ‘recepcioncadenaCodificadaCompraDesdeElBroker’ y ‘recepcioncadenaCodificadaVentaDesdeElBroker’ tenían 162 y 176 líneas de código respectivamente, y ahora con la técnica de refactorización se pudo minimizar a 105 y 123 líneas; es decir, una reducción de casi el 30% de la cantidad de líneas originales de ambos métodos.