Mach doch mal die If's schöner!

Mach doch mal die If's schöner!

Die Anordnung von If-Anweisungen kann die Nachvollziehbarkeit verbessern.

Ausgangslage

Mit einem einfachen Trick können wir unsere If-Bedingungen reformulieren, um so immer zunehmenden Einrück-Exzesse zu vermeiden und um die Leserlichkeit zu verbesser.

Betrachten wir das folgende Beispiel, in dem wir einen Knoten in einen Suchbaum hinzufügen wollen, wenn:

def add_node_to_tree(self, node, tree):

    if node.lowerbounde < self.upperbound:
        if node not in self.zwischenloesungen:
            if dominated(node) == False:

                tree.append(node)

Der Code rückt bereits bei drei zu prüfenden Statements sichtbar ein. Nachfolgend wird daher eine Alternative dargestellt.

def add_node_to_tree(self, node, tree):

    if node.lowerbounde >= self.upperbound:
        return
    if node in self.zwischenloesungen:
        return
    if dominated(node):
        return

    tree.append(node)

Hier werden alle relevanten Bedingungen bekömmlich untereinander aufgelistet und können von Fremden (oder dem Zukunfts-Ich) Zeile für Zeile nachvollzogen werden. Sollten sich im Laufe der Zeit weitere Prüfungen ergeben, können diese elegant in die Funktion eingefügt werden.