Refactorización

La Refactorización es una limpieza de código que no cambia el comportamiento de dicho código.

Refactoring

El libro de Martin Fowler Refactoring (http://amzn.to/2ok8fwl) es la referencia clásica aunque la refactorización de código se ha llevado a cabo de manera informal durante años, la tesis doctoral de William F. Opdyke (1993) es el primer trabajo conocido que examina específicamente esta técnica.

Ejemplos de refactorización

Debemos refactorizar nuestro código para hacerlo más claro, por ejemplo cambiando una variable $t por $title  para hacer más claro su significado.

También refactorizarlo para hacerlo más eficiente, por ejemplo, el siguiente código:

for ($i=0;$i<count($array);$i++)
{ 
echo "<p>".$array[$i]."</p>";
}

hace lo mismo que el siguiente código:

$total_elementos = count( $array );
for ( $ i = 0; $i < $total_elementos; $i++ ) {
	echo '<p>' . $array[$i] . '</p>';
}

Pero hemos realizado los siguientes cambios:

  • En vez de contar los elementos totales de la matriz en cada pasada (línea 1 del primer ejemplo), los contamos una única vez (línea 1 del segundo ejemplo).
  • Seguimos los estándares en cuanto a código PHP de WordPress:
    • Añadimos un espacio después de la apertura del paréntesis.
    • Añadimos un espacio antes del cierre del paréntesis.
    • Espacios antes y después del punto de concatenación de cadenas de texto.
    • Usamos comillas sencillas para las cadenas de texto si el propio texto no usa la comilla sencilla.
    • Indentaciones adecuadas en cada línea.
    • Usamos la indentación con tabulador real de cuatro espacios.
    • Estilo de llaves de WordPress (al final de la sentencia en vez de en nueva línea).

También debemos refactorizar cuando repetimos código (creamos función para tal efecto, método de una clase o una clase específica).

Si una función o método, clase realiza más de una acción, por ejemplo, una función para calcular el IVA functionc calc_iva( $cantidad = 0, $iva = 21 ) { debe calcular el IVA de una cantidad determinada con un determinado IVA, si también calcula los gastos de envío, debemos refactorizar dicha función para dividirla y que una calcule el IVA y la otra los gastos de envío.

Artículo sobre refactorización y código limpio.

Deja un comentario