Menos código vs Buen código

A menudo es una pregunta que los programadores se hacen, ¿qué es mejor? ¿escribir menos código o escribir buen código?

Aunque hoy en día con las herramientas case se hace menos laborioso esta tarea aún hay gente que quiere optimizar su programación hasta tal punto que, aunque se escriban menos lineas la posterior comprensión del código puede ser imposible.

Y como se suele decir, en el término medio está la virtud, ni escribir 8 lineas para una consulta simple ni enredar el código de tal manera que sólo lo entiendas tu.

Una cosa que se podría tener en cuenta al programar, es la optimización del código, pero no en cuanto a la cantidad de lineas sino al esfuerzo de compilar y ejecutar esas lineas.

Por que a la hora de compilar y ejecutar no es lo mismo hacerlo de esta manera:

$valor=calcular();

for($i=0;$i<$valor;$i++) {

}

Que si integrasemos la llamada a la función dentro del for

for($i=0;$i<calcular();$i++) {

}

Esto parece algo evidente, ya que en el segundo caso hacemos un uso innecesario de memoria, pero a la hora de programar mucha gente lo obvia.

Este es un caso en el que escribir menos lineas de código no compensa, ya que la ejecución de nuestro programa será más lento.

En este otro ejemplo podemos observar cómo se puede optimizar un trozo de código.

if($i == 1) {
$p = ‘una cosa’;
} else {
$p = ‘otra cosa’;
}

Optimizando el bucle podríamos tener:

$p = ($i == 1 ? ‘una cosa’ : ‘otra cosa’);

¿Tu que opinas?

Artículos relacionados



Comentarios en Menos código vs Buen código

Hay 4 Comentarios en el artículo Menos código vs Buen código, ¿a qué esperas para dar tu opinión?


  1. luigix dice:

    Sin duda el ejemplo del FOR es claríssimo. Es absurdo realizar la llamada a calcular() cada iteración del bucle !
    Hay que programar siempre que se pueda acortando instrucciones, pero ante todo, cuanto menos hagamos trabajar a la cpu, mucho mejor. Aunque ello nos implique más lineas de código.

  2. emirodgar dice:

    Pues si, esa es la idea que quería transmitir, aunque creo que me he liado un poco en las explicaciones :p

  3. CalinSoft dice:

    Eso del Operador tenario creo que no es más rapido “if else”
    claro es más rapido de codificarlo pero en la ejecución no se en realidad =)

  4. emirodgar dice:

    Pues yo tampoco lo sé pero si me gustaría saberlo, aunque sólo sea por escribir una linea en vez de 5.. ya tendría que compensar :p

Deja un comentario