sábado, 12 de septiembre de 2020

Utilizar valores implícitos atenta contra la legibilidad del código?


El Zen de Python dice : Explicit is better than implicit o Explícito es mejor que implícito. Cosa que me ha dejado pensando porque no aplica siempre. Por ejemplo: 

boolean b;

if (b == true) then: ...

b por defecto es false, pero no se lo estamos diciendo, en este caso yo particularmente prefiero ser explicito, es decir dejar claro cual es el valor de la variable: 

boolean b = false

pero me choca y me disgusta (es que ya estoy viejo) el if , es como que el programador no tiene en cuenta que b es un dato. Y ese dato lo podemos comprobar, prefiero: 

if (b) then: ...

Pero hay cosas implicitas en los lenguajes que a mi modo de ver las cosas, atentan contra la legibilidad. 

El caso más fácil de ejemplificar es que valores de otros tipos sean false o true, eso hace más fácil a vida del experto pero sin duda no deja tan clara las cosas. Por ejemplo: 

if (typeof(some_variable) != 'undefined' && some_variable != null)

{

    // Do something with some_variable

}

por : 

if (some_variable)

{

    // Do something with some_variable

}

Claro que la ultima es más corto, pero que diablos hace? Si sabes javascript es fácil, pero lo puede entender todo el mundo? 

Que opinan?

2 comentarios:

  1. Creo que depende la sintaxis que use el programador, uno con experiencia no colocaría una variable que no se explique sola al leerser, es decir;

    if (isValidToken) {}

    Lo que ya indica que la variable es booleana o que power un flag booleano

    ResponderBorrar
  2. Que opinan? - Opino que los lenguajes dinámicos son una rever3nda v3rga y no deberían existir. Y esto, junto con una tonelada de problemas similares, no existirían, por definición.

    ResponderBorrar