Las condiciones Yoda usar debes

Para mi primer artículo del 2015 vengo con una enseñanza jedi 😉
He aprendido algo de manera fortuita, bastante interesante y en lo que nunca había caído en la cuenta.

Estaba instalando un sniffer de código para Sublime Text, con el que hacer la revisión de estándares de código cuando programas algo para Wordpress, generalmente un plugin. Al instalar las reglas con los estándares, usadas del repositorio oficial: https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards, he probado el sniffer de código con el primer archivo que he abierto del plugin Akismet, que por cierto me ha sacado un montón de errores de estándares y eso que el plugin es de los mismos de Wordpress.

La primera recomendación de estándar que me saca por pantalla es la siguiente:

 

“Use Yoda Conditions checks, you must”. Y yo como: WHAT?

Pues bien, tras la primera búsqueda en Google encontré una web, que parece o pretende ser un compendio de estándares de código: http://codingstyleguide.com/style/59/php-yoda-conditions entre los que define el uso de las condiciones Yoda en una gran variedad de lenguajes de programación.

¿Que son las condiciones Yoda?

Las condiciones Yoda, no son más que la disposición en la que se colocan ciertos datos, y más concretamente los tipo booleanos, en las comparaciones lógicas. También es aplicable a las constantes y literales.

Por lo que he leído en stackoverflow, grupos de google y otras fuentes, este estándar lleva un tiempo entre los círculos de las buenas maneras de hacer código.

Ejemplo de lo que hacemos y vemos por doquier:


<?php

if ($prueba == true) {
// código
}

Ahora bien, aplicando el estándar de condición Yoda tendríamos algo así:

Con un tipo booleano.


<?php

if (true == $prueba) {
// código
}

Con un literal.


<?php

if ('ok' == $prueba) {
// código
}

¿Para que son las condiciones Yoda?

Este estándar viene a solventar uno de los errores de programación más tonto, después de olvidar un punto y coma, un cierre de paréntesis y errores en la escritura de código del mismo calibre, como olvidar un carácter de igual (=). Que en algunos casos, ya sea por un lapsus mental o desconocimiento, hasta he visto confundir una comparación (==) por una asignación (=).

De este modo, cuando se compara, un booleano, una constante o un literal siempre es una buena práctica incluir el dato primero y después la variable a comparar.
Si olvidamos uno de los signo de igual (=), el intérprete de php devolverá un error de parseo. En cambio si usamos el método normal, no devolverá ningún error, porque se estará haciendo una asignación, en vez de una comparación.
Este tipo de error, que parece algo insignificante puede desencadenar que la lógica de la aplicación siga flujos de datos que no corresponden a como debería funcionar, dando lugar a funcionamientos inesperados, almacenamiento de datos erróneos o pérdida de los mismos, y si se trata de un e-commerce, adserver, apps móviles o lo que sea hasta pérdidas económicas.

Toda buena práctica en el desarrollo de código es bien recibida, que sin duda cualquiera debería aplicar, especialmente en este caso de las condiciones yoda, los iniciados en la programación.

Tags de búsquedas:

imágenesde Yoda,las buenas maneras de yoda,normas de seguridad que debe tomar en cuenta en la agricultura

Contenido patrocinado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Comparte este artículo! »

Sígueme en Facebook »

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

profile for Pedro Ventura on Stack Exchange, a network of free, community-driven Q&A sites
Leer entrada anterior
Integrar botón de WhatsApp en tu web o blog

De todos es conocido que WhatsApp se ha convertido en una herramienta para compartir fotos y vídeos con tus amigos,...

Cerrar