Creators
7
min de lectura
4 de marzo de 2021
Este post contiene traducción automática

¿Usted sabe qué es Bad Smell? Parte II

Thiago dos Santos Chagas
Consultor .Net
Desarrollo e implemento varias pruebas para la aplicación software . Evalúo los proyectos y me aseguro de que compliance cumpla con los requisitos del negocio en la plataforma API de sensedia.
Más sobre el autor

Volvemos con la segunda parte de la semana del Bad Smell aquí de nuestro blog. Y si usted aún no leyó la primera parte es solo hacer clic aquí. Hoy vamos a hablar de la familia Obfuscators .

¿Pero quiénes son los Obfuscators??

Obfuscators es un tipo de bad smell que cubre el comportamiento o el propósito de nuestro código generando falta de comunicación, pues ofusca lo que debe ser hecho y la intención, causándole confusión al lector. En este artículo vamos a hablar de los Obfuscators Vertical Separation y los Poor Names. ¿Pero quiénes son ellos? 

Vertical Separation 

“Variables y funciones deben ser declaradas donde fueren usadas.” 

Esto puede parecer una tontería, pero ayuda mucho en la organización y visibilidad de nuestro código. Recuerde que creamos códigos para personas y no para máquinas y mientras más legible sea, más rápido será la adaptación de otra persona que vaya a dar mantenimiento, o incluso usted cuando vuelva en el código después de algún tiempo. 

¡¡Vamos a ver un ejemplo!! 

En la imagen siguiente, tenemos una clase llamada Vertical Separation. Al analizar esta clase, vemos que contiene cuatro métodos declarados y una variable. En el método EjecutarMetodoUno, al inicio tenemos una declaración de una variable, miValor, que solo será usada en la última llamada de método (EjecutarMetodoTres). La clase nos muestra que la organización de los métodos está un poco confusa, tenemos que usar el scroll para verificar los métodos contenidos. Ya activamos la alerta para efectuar un refarctor en esa clase.

Imagen para el puesto

 ¿Vamos a ver qué podemos mejorar en la clase anterior?

Imagen para el puesto

 

Dándole un vistazo a la clase después de la refactoración, podemos percibir una mejor organización tanto visual como física de su contenido. Dentro del método EjecutarMetodoUno, dejamos separadas las llamadas de la rutina compartida y las llamadas en cascada. 

Como usamos la variable declarada solamente en la llamada del método EjecutarMetodoTres , que es la última, hacemos su declaración antes de la llamada del método. Esto muestra que la variable fue declarada en aquel pedazo de código demostrando la intención de ser usada debajo en la próxima llamada. La declaración de los métodos implementados también sigue el orden en que ellos fueron llamados en el flujo principal.

Otros consejos para resolver Vertical Separation

  •  Métodos privados deben ser declarados debajo de donde fueren usados sin necesidad de desplazamiento de scroll.
  •  En el caso que usted tenga un método privado que es usado por varios otros métodos, declárelo después del primer local de uso.
  • La clase no debe ser tan larga como para buscar las rutinas. Divida la clase en clases más pequeñas( Principio deresponsabilidad única, segregación de interfaces).

Poor Names

Imagen para el puesto

 

Unas de las cosas más importantes en un código son que los nombres sean de métodos, clases o variables. Un nombre tiene que ser descriptivo y debe expresar exactamente qué representa aquello en la regla en que estamos trabajando. Poor Names se apartan totalmente de este estándar, o sea son difíciles de entender y no tienen expresión.

Vamos a un ejemplo.

 

Imagen para el puesto

En la clase anterior Poor Name tenemos la declaración de propiedades y del método de forma totalmente errónea. Nombres sin expresión, uso de prefijos, declaraciones con estándares inválidos. Tenemos un método que por el nombre no tenemos la mínima idea de qué hace. Esta clase necesita urgentemente de un refactor.


Imagen para el puesto

En la clase después de la refactoración, tenemos las propiedades declaradas con las Convenciones usadas en C# . Y ahora con un nombre más extenso, el método y sus declaraciones internas, expresan exactamente lo que hace.

 Otros consejos para resolver Poor Names 

  • Verifique siempre si el nombre propuesto es descriptivo. 
  • El nombre debe darse en función del nivel de abstracción. 
  • Intente seguir estándares.
  • Los nombres no deben ser ambiguos. 
  • Use nombres extensos para contextos extensos. 
  • No use abreviaciones.

Espero que les haya gustado, en el próximo artículo vamos a hablar sobre los Bad Smells de la Familia Dispensables. 

May the force be with you!

Referencias


¡Gracias por leer!