lbalazscs / Pixelitor

A desktop image editor
https://pixelitor.sourceforge.io/
GNU General Public License v3.0
181 stars 70 forks source link

Code Smells and Refactoring #376

Open aszurita opened 1 month ago

aszurita commented 1 month ago

Código Actual

image
  1. En el método paintBorderGlow de la clase, se utilizan valores numéricos (como 20 y 40) directamente en el código para manejar desplazamientos y expansiones de áreas. Estos números, llamados como "números mágicos", son difíciles de interpretar y mantener cuando se requiere un cambio. Utilizar valores numéricos directamente en el código puede conducir a errores y disminuir la claridad, ya que no queda claro el propósito de estos valores sin comentarios adicionales y aquí se estaría recayendo en code smells.

    Aplicando la técnica de Replace Magic Number with Symbolic Constant a esos números( 20 y 40) convirtiendo en constantes (marginOffset y expandir), se obtienen múltiples beneficios: el código se vuelve más legible, ya que los nombres de las constantes dan un contexto claro sobre el propósito de los valores. Además, se reduce la probabilidad de errores al modificar estos valores en el futuro, ya que solo es necesario cambiar la constante en un lugar. Esto facilita el mantenimiento del código, hace que sea más fácil de entender para otros que leen el código y permite que el código sea más flexible a cambios futuros.

Solución

image
lbalazscs commented 3 weeks ago

The real question is why are these numbers 20 and 40. I see no reason for them to be 20 and 40. Just giving them a name doesn't make the code clearer, I mean it's obvious that the 20 is some sort of safety margin, and the 40 is just 2*20.

BTW, I didn't write that code, everything outside the pixelitor package is library code.