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...