Evitar niveles de anidación de sentencias condicionales con guard clauses

Publicado por pico.dev el .
blog-stack java planeta-codigo programacion
Comentarios

Java

Al escribir el código de un método es habitual hacer algunas comprobaciones sobre los parámetros, por ejemplo, para comprobar que el parámetro tiene una referencia, si es nulo o cumple alguna condición, si es una lista que no esté vacía o para validar mediante alguna otra regla. Estas validaciones o aserciones se realizan al inicio del método con sentencias if que añaden un nivel de tabulación al código si se anidan. Estos niveles de tabulación con sentencias if anidadas hacen poco legible el código.

Este código que comprueba algunos parámetros no es tan sencillo de entender por los varios niveles de anidación.

En vez de crear este nivel de anidación y crear varios flujos distintos por donde se bifurca el código, con aserciones, sentencias if o guard clauses el código queda más legible. Después de cada cláusula if es seguro que la aserción que realiza se cumple.

También es una recomendación que los métodos solo tengan una sentencia return, de hecho en la enseñanza de programación se explica pero para estos casos de comprobaciones la ventaja de no tener varios if anidados es justificable tener varios return, el código queda más legible.