Explicando las variables
Su caso es un ejemplo de la introducción que explica la refactorización variable . En resumen, una variable explicativa es una que no es estrictamente necesaria, pero le permite dar un nombre claro a algo, con el objetivo de aumentar la legibilidad.
El código de buena calidad comunica la intención al lector; y como desarrollador profesional, la legibilidad y la mantenibilidad son sus objetivos número 1.
Como tal, la regla general que recomendaría es esta: si el propósito de su parámetro no es inmediatamente obvio, no dude en usar una variable para darle un buen nombre. Creo que esta es una buena práctica en general (a menos que se abuse de ella). Aquí hay un ejemplo rápido y artificial: considere:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
versus el un poco más largo, pero posiblemente más claro:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
Parámetros booleanos
Su ejemplo realmente resalta por qué los booleanos en las API a menudo son una mala idea : por el lado de la llamada, no hacen nada para explicar lo que está sucediendo. Considerar:
ParseFolder(true, false);
Tendría que buscar qué significan esos parámetros; si fueran enumeraciones, sería mucho más claro:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
Editar:
Se agregaron encabezados e intercambiaron el orden de los dos párrafos principales, porque mucha gente se estaba enfocando en la parte de los parámetros booleanos (para ser justos, originalmente era el primer párrafo). También se agregó un ejemplo a la primera parte.