Skip to content

Code Smells  #2

Description

@melina-maria

Hola! Espero que estés teniendo un excelente día.
Luego de revisar el código fuente del proyecto pude notar que existen varios code smells. Entre ellos estan:

Speculative Generality:
Este mal olor se encuentra en la clase “PantallaAgencia” y como se puede observar en la imagen adjunta presenta código que está vacío (Cases del Switch) para futuras implementaciones del sistema. El beneficio que se podría traer si se refactoriza este código, es que las líneas de código disminuirían considerablemente y a su vez se haría más fácil de soportar. La técnica más apropiada para eliminar este mal olor sería simplemente eliminar las líneas de código que en la actualidad no se van a implementar.
Speculative

Long parameter List:
Este mal olor se encuentra situado en la clase Tour, como se puede observar el constructor de dicha clase presenta más de 3 parámetros, esto se puede dar debido a que se está intentando una independencia entre las clases involucradas en el sistema. Los beneficios al refactorizar esta sección serían que el código estaría más legible para el equipo/terceros y también que en este caso al ser tratarse de un constructor su llamada será más breve. La técnica que recomendaría para mejorar el código sería "Introduce Parameter Object". Esta técnica consiste en crear un nuevo objeto que contenga variables relacionadas y este objeto tomará el papel del parámetro en el constructor.
long

Long Method:
Este mal olor se encuentra presente en la clase Pantalla Agencia, como puedes observar el método Main cuenta con más de 100 líneas de código, lo cual lo hace menos legible. Al aplicar la técnica de refactorización "Extract Method" evitas que exista código duplicado no deseado, sea más fácil de mantener y comprender. Esta técnica consiste principalmente agrupar fragmentos de código y colocarlos en un nuevo método y hacer llamada de este desde el método principal.
long method

Espero que esta pequeña información te ayude!
Gracias de antemano.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions