Spiegare le variabili
Il tuo caso è un esempio dell'introduzione che spiega il refactoring variabile . In breve, una variabile esplicativa non è strettamente necessaria, ma consente di dare un nome chiaro a qualcosa, con l'obiettivo di aumentare la leggibilità.
Un codice di buona qualità comunica l' intenzione al lettore; e come sviluppatore professionista la leggibilità e la manutenibilità sono i tuoi obiettivi n. 1.
Pertanto, la regola empirica che consiglierei è questa: se lo scopo del tuo parametro non è immediatamente ovvio, sentiti libero di usare una variabile per dargli un buon nome. Penso che questa sia una buona pratica in generale (se non abusata). Ecco un esempio rapido e inventato: considera:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
rispetto al leggermente più lungo, ma probabilmente più chiaro:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
Parametri booleani
Il tuo esempio in realtà evidenzia perché i booleani nelle API sono spesso una cattiva idea : sul lato chiamante, non fanno nulla per spiegare cosa sta succedendo. Tener conto di:
ParseFolder(true, false);
Dovresti cercare cosa significano quei parametri; se fossero enumerazioni, sarebbe molto più chiaro:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
Modificare:
Aggiunti titoli e scambiato l'ordine dei due paragrafi principali, perché troppe persone si stavano concentrando sulla parte dei parametri booleani (per essere onesti, in origine era il primo paragrafo). Ha anche aggiunto un esempio alla prima parte.