Codigo limpio y refactorización
El código debe comportarse de manera predecible y no generar sorpresas.
El código no puede mentir, debe ser obvio y no sorprender al programador.
Código Malo
1public int dividir(int a, int b) { 2 if (b == 0) { 3 return -1; // ¿Por qué -1? No es intuitivo. 4 } 5 return a / b; 6}
Código Bueno
Problema: La funcion dividir en ocasiones devuelve un valor inesperado -1.
Solución: Usa excepciones para casos no válidos y evita valores arbitrarios.
1public int dividir(int a, int b) { 2 if (b == 0) { 3 throw new IllegalArgumentException("El divisor no puede ser cero"); 4 } 5 return a / b; 6}
Ejemplo codigo que no cumple con el principio de Least Surprise
Código Malo
1public String concatena2Cadenas(String cadena1, String cadena2) { 2 String resultado = cadena1.trim() + cadena2.trim(); 3 return resultado.toLowerCase(); 4}
Problema: La funcion concatena2Cadenas, miente, pues realiza acciones que no son obvias.
Solución: Haz que cada funcion realize una sola cosa y no mienta.
Código Bueno
1public String concatena2Cadenas(String cadena1, String cadena2) { 2 return cadena1 + cadena2; 3} 4 5public String eliminaEspaciosExtremos(String cadena) { 6 return cadena.trim(); 7} 8 9public String convertirAMinusculas(String cadena) { 10 return cadena.toLowerCase(); 11}
- Loading...