Las declaraciones condicionales deben limitarse a la verificación de una condición lógica, no a la ejecución de código como efecto secundario. Utilizar el valor de retorno de una función directamente dentro de un if genera ambigüedad en la intención del código y dificulta la lectura. Por ejemplo, si una función como enqueueMessage() devuelve un valor booleano, el lector no puede determinar si la condición se refiere al éxito de la operación o al estado actual de la cola. La solución recomendada es asignar el resultado a una variable explícita antes de la condición, lo que clarifica la lógica y separa la acción de la prueba.
Además, omitir efectos secundarios en if previene que los lectores escanean el código y pasen por alto llamadas críticas a métodos. Un caso común en producción es el uso de add() en un Set dentro de una condición, lo que confunde la lógica de bucle y la evaluación de la API. Al separar la llamada del efecto secundario de la condición, se elimina esta ambigüedad. Finalmente, evitar el uso de evaluación de corto circuito para evitar llamadas con efectos secundarios es crucial, ya que la evaluación de corto circuito está diseñada para proteger contra errores en declaraciones sin efectos secundarios. Mantener el código legible y predecible mejora la mantenibilidad y reduce errores en equipos de desarrollo.
