Codigo limpio y refactorización

Buena práctica:

Se recomienda evitar valores mágicos (números, strings o valores sin contexto en el código) y usar constantes con nombres descriptivos. Esto mejora la legibilidad, mantenibilidad y evita errores difíciles de detectar.


🔴 Problema con valores mágicos (Mala práctica)

  • No es claro qué representa 0.9 (un descuento, un ajuste, un impuesto, etc.).
  • Si se necesita cambiar el valor en varios lugares, hay riesgo de errores al actualizarlo.
  • El código pierde contexto y se vuelve más difícil de mantener.
1public class Descuento {
2    public double calcularPrecioFinal(double precioBase) {
3        return precioBase * 0.9; // ¿Qué significa 0.9?
4    }
5}

✅ Solución: Usar constantes con nombres significativos

  • Mayor legibilidad: Ahora DESCUENTO_CLIENTE deja claro qué representa 0.9.
  • Fácil mantenimiento: Si el descuento cambia, solo se modifica en un solo lugar.
  • Evita errores: Reduce la posibilidad de asignar valores incorrectos.
1public class Descuento {
2    private static final double DESCUENTO_CLIENTE = 0.9; // 10% de descuento
3
4    public double calcularPrecioFinal(double precioBase) {
5        return precioBase * DESCUENTO_CLIENTE;
6    }
7}

🔹 Otro Ejemplo con Strings

🔴 Mala práctica con valores mágicos

  • Error tipográfico difícil de detectar.
  • Falta de coherencia si "ADMIN" cambia en varias partes del código.
  • No es reutilizable.
1if (tipoUsuario.equals("ADMIN")) {
2    // Acceso permitido
3}

Buena práctica con constantes

  • Evita errores tipográficos.
  • Fácil modificación si el rol cambia.
  • Mayor legibilidad y coherencia.
1public class Usuario {
2    public static final String ADMIN_ROLE = "ADMIN";
3
4    public boolean tieneAcceso(String tipoUsuario) {
5        return ADMIN_ROLE.equals(tipoUsuario);
6    }
7}

📌 Reglas generales

  1. Define constantes en la parte superior del archivo o en un módulo centralizado.
  2. Usa nombres descriptivos y en mayúsculas (MAX_INTENTOS, ADMIN_ROLE, DESCUENTO_CLIENTE).
  3. No declares constantes dentro de funciones si pueden ser reutilizadas.
  4. Si un valor se usa en varios lugares, conviértelo en una constante.

🚀 Conclusión: Evita los valores mágicos y usa constantes bien nombradas para hacer tu código más claro, mantenible y libre de errores.