Variablen erklären
Ihr Fall ist ein Beispiel für die Einführung in das Variable Refactoring. Kurz gesagt, eine erklärende Variable ist eine Variable, die nicht unbedingt erforderlich ist, die es Ihnen jedoch ermöglicht, einer Sache einen eindeutigen Namen zu geben, um die Lesbarkeit zu verbessern.
Ein guter Qualitätscode teilt dem Leser seine Absicht mit. und als professioneller Entwickler sind Lesbarkeit und Wartbarkeit Ihre obersten Ziele.
Als Faustregel würde ich Folgendes empfehlen: Wenn der Zweck Ihres Parameters nicht sofort offensichtlich ist, können Sie eine Variable verwenden, um ihm einen guten Namen zu geben. Ich denke, dies ist eine gute Praxis im Allgemeinen (sofern nicht missbraucht). Hier ist ein kurzes Beispiel:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
gegenüber dem etwas längeren, aber wohl klareren:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
Boolesche Parameter
Ihr Beispiel zeigt tatsächlich, warum Boolesche Werte in APIs oft eine schlechte Idee sind - auf der aufrufenden Seite tun sie nichts, um zu erklären, was passiert. Erwägen:
ParseFolder(true, false);
Sie müssten nachsehen, was diese Parameter bedeuten. Wenn sie Aufzählungen wären, wäre es viel klarer:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
Bearbeiten:
Es wurden Überschriften hinzugefügt und die Reihenfolge der beiden Hauptabsätze vertauscht, da sich zu viele Leute auf den Teil mit den booleschen Parametern konzentrierten (um fair zu sein, es war ursprünglich der erste Absatz). Fügte auch ein Beispiel zum ersten Teil hinzu.