Web-Entwicklung

Geschäftslogik

Geschäftslogik ist der Teil einer Anwendung, der die fachlichen Regeln eines Betriebs umsetzt, etwa Preisbildung, Prüfungen und Zustandsübergänge eines Vorgangs.

Die Geschäftslogik bildet die Schicht zwischen Datenhaltung und Darstellung; ihre Verortung entscheidet darüber, ob Regeln an einer Stelle gepflegt werden oder in mehreren Ausgaben nebeneinander leben.

In einfachen Worten

Jede Anwendung besteht aus drei Schichten: der Datenhaltung, der Geschäftslogik und der Darstellung. Die Datenhaltung speichert Werte, die Darstellung zeigt sie an, und die Geschäftslogik entscheidet, was aus diesen Werten folgt. Bei einer Preisbildung im Konfigurator berechnet sie den Betrag aus Menge, Ausführung und Versandweg. Bei einer Prüfung entscheidet sie, ob eine Bestellung weitergehen darf. Bei einem Vorgang legt sie fest, welcher Zustand auf welchen folgt. Entscheidend ist die Verortung: Steht eine Regel an einer Stelle und wird von allen Ausgaben abgefragt, gilt eine Änderung überall gleichzeitig. Steht sie in jeder Ausgabe erneut, laufen die Ergebnisse mit der Zeit auseinander.

Wozu brauche ich das?

Der Anlass entsteht, sobald dieselbe Regel an mehreren Stellen sichtbar wird. Eine Preisberechnung erscheint auf der Artikelseite, im Warenkorb, im Angebot und auf der Rechnung. Eine Prüfung wirkt in der Eingabemaske und noch einmal bei der Verarbeitung. In beiden Fällen wird die Regel einmal umgesetzt und von allen Ausgaben abgefragt.

Beispiel aus der Praxis

Eine Kalkulation reagiert im Browser sofort auf jede Eingabe. Damit das gelingt, wurde sie dort nachgebaut, während die verbindliche Berechnung auf dem Server liegt. Beide gelten als gleichwertig gepflegt, bis eine Preisstufe geändert wird und nur eine Seite die Änderung erhält. Der Kunde sieht daraufhin einen Betrag, den die Bestellung nicht bestätigt. Die Klärung landet im Vertrieb und kostet mehr Zeit, als die Bestellung wert ist.

Wirtschaftlicher Nutzen

Eine zentral geführte Geschäftslogik senkt den Pflegeaufwand und sichert zugleich die Übereinstimmung der Angaben. Eine geänderte Regel wirkt in allen Ausgaben im selben Moment, Abweichungen zwischen Anzeige und Beleg entfallen, und Prüfungen lassen sich nicht umgehen, indem die Oberfläche umgangen wird.

Typische Fehler

  • Regeln in der Darstellung umgesetzt – wer die Oberfläche umgeht, umgeht damit auch die Prüfung.
  • Dieselbe Berechnung in mehreren Ausgaben nachgebaut – nach der ersten Änderung weichen die Ergebnisse voneinander ab.
  • Fachliche Regeln in Abfragen der Datenhaltung versteckt – sie sind dort schwer auffindbar und werden bei Änderungen übersehen.
  • Zustandsübergänge ohne Prüfung umgesetzt – ein Vorgang springt in einen Zustand, den seine Vorgeschichte nicht zulässt.
  • Regeln fest im Programmcode hinterlegt, die sich häufig ändern – jede Anpassung wird dadurch zur Entwicklungsaufgabe.

Worauf achten?

  • Die verbindliche Berechnung auf dem Server halten; eine Anzeige im Browser darf sie beschleunigen, ersetzt sie jedoch nicht.
  • Regeln, die sich häufig ändern, in eine pflegbare Konfiguration legen, damit keine Entwicklung für eine Anpassung nötig wird.
  • Für jede Regel festhalten, wer sie fachlich verantwortet und wo sie dokumentiert ist.
  • Zustandsübergänge ausdrücklich beschreiben und ungültige Übergänge abweisen.
  • Änderungen an Regeln mit Testfällen absichern, die den fachlichen Fall abbilden.

Häufig gestellte Fragen

Was zählt zur Geschäftslogik?

Alles, was aus gespeicherten Werten eine fachliche Entscheidung ableitet: Preisbildung, Rabattregeln, Prüfungen vor dem Abschluss, Zustandsübergänge eines Vorgangs und Berechtigungen.

Warum gehört die Berechnung auf den Server?

Weil eine Berechnung im Browser sich umgehen und verändern lässt und weil sie bei jeder Regeländerung getrennt gepflegt werden müsste. Der Server liefert das verbindliche Ergebnis, das alle Ausgaben übernehmen.

Gehören Regeln in den Programmcode oder in die Konfiguration?

Das hängt von der Änderungshäufigkeit ab. Regeln, die sich selten ändern, sind im Programmcode gut aufgehoben. Regeln, die laufend angepasst werden, gehören in eine Oberfläche, in der die Fachabteilung sie pflegen kann.