--

Hola Danilo,

Sin ver el código real solo puedo remarcar que las cláusulas de guarda sirven para extraer todos los casos de fallo, los que impedirán que el código objetivo se ejecute.

De esta forma, seguimos la metodología Fail Fast (https://www.martinfowler.com/ieeeSoftware/failFast.pdf) que nos permite detectar y devolver errores cuanto antes.

Si todas las cláusulas de guarda han sido superadas, solo nos queda ejecutar el código objetivo de nuestro método o función, con la certeza de que los datos de entrada son válidos.

Las ventajas más destacables son:

* Aumentar la legibilidad del código: sustituyes "if speed < 0" por "validateSpeed", que expresa la intención más claramente y aporta semántica al código

* Reduces niveles de identación, de modo que el código objetivo no está a varios niveles de identación, teniendo que ir a buscarlo dentro de las tripas de uno o más if's anidados. Ahora el código que realmente importa es el más visible y fácil de encontrar dentro de tu código.

* Extraes el código accesorio (las validaciones) a otros métodos, de modo que cada cosa tiene su propio espacio y su propio nombre, y en cada caso, el código realmente importante siempre es el más visible.

--

--

Miguel Ángel Sánchez
Miguel Ángel Sánchez

Written by Miguel Ángel Sánchez

PHP Developer - Clean Coder | Founder @secture_com 🏴‍☠️ | Previously: Tech Lead @Beroomers 🏡 · CTO @origo_by 🌀

Responses (1)