Ich habe viele Leute bei der Arbeit und im Internet über Geschäftslogik reden hören, und ich habe auf dieser Website mehrere Fragen dazu gelesen, aber der Begriff macht für mich immer noch keinen Sinn. Zum Beispiel sind hier einige (paraphrasierte) Aussagen, die ich oft sehe:
"Die Geschäftslogik ist der Teil Ihres Programms, der die tatsächlichen Geschäftsregeln codiert." Die meisten Definitionen, die ich gelesen habe, sind zirkuläre.
"Geschäftslogik ist alles, was für Ihre spezielle Anwendung einzigartig ist." Ich verstehe nicht, wie sich dies von "Ihre spezielle Anwendung ist nichts anderes als Geschäftslogik" unterscheidet, es sei denn, wir haben versehentlich einen Radsatz neu erfunden, für den wir vorhandene Software von Drittanbietern hätten verwenden können. Daher der Fragentitel.
"Über Ihrer Datenzugriffsebene und unter Ihrer GUI-Ebene sollte sich eine Geschäftslogikebene befinden." In dem Code, den ich schreibe, müssen die Datenbankzugriffsberechtigten wissen, auf welche Daten sie zugreifen sollen, und der UI-Code muss viel darüber wissen, was er anzeigt, damit er richtig angezeigt wird. Dazwischen gibt es nichts zu tun Diese beiden anderen Orte als das Weiterleiten von Datenblobs zwischen Client und Server. Was soll eigentlich in eine Business-Logik-Schicht aufgenommen werden?
"Geschäftslogik sollte von Präsentationslogik getrennt sein." Die meisten Anfragen nach Funktionen betreffen die Änderung der Präsentationslogik aus geschäftlichen Gründen. Wenn eine der Geschäftsregeln darin besteht, die Kurse von US-Staatsanleihen standardmäßig in der 32. Notation anzuzeigen (und gleichzeitig dem Benutzer eine Benutzeroberfläche zur Konfiguration bereitzustellen), muss die Präsentationslogik mindestens wissen, dass diese Regel vorhanden ist, wenn sie nicht vollständig implementiert ist. Außerdem scheint es, als ob ein großer Teil des UX-Designs darin besteht, dem Benutzer zu helfen, die Geschäftsregeln zu verstehen, die unsere Software zu implementieren versucht.
Ist es möglich, dass ich in einem Team bin, das nur Geschäftslogik betreibt und die gesamte Nicht-Geschäftslogik von anderen Teams ausgeführt wird? Oder ist das gesamte Konzept der "Geschäftslogik" als eigenständige Einheit nur für bestimmte Anwendungen oder Architekturen anwendbar?
So konkretisieren Sie die Antworten: Stellen Sie sich vor, Sie müssen die Domino's Pizza-App erneut implementieren. Was ist die Geschäftslogik und was ist die Nicht-Geschäftslogik dieser App? Und wie wäre es möglich, diese Geschäftslogik zur Bestellung von Pizza in eine eigene "Codeschicht" zu integrieren, ohne dass die meisten Pizzainformationen in die Datenzugriffs- und Präsentationsschichten gelangen?
Update: Ich bin zu dem Schluss gekommen, dass mein Team wahrscheinlich 90% UI-Code verwendet und die meisten - aber nicht alle - der von Ihnen als Geschäftslogik bezeichneten Informationen von anderen Teams oder Unternehmen stammen. Grundsätzlich ist unsere Anwendung für die ÜberwachungFinanzdaten und fast alle Funktionen bieten dem Benutzer die Möglichkeit, anzupassen, welche Daten angezeigt und wie sie angezeigt werden. Es findet kein Kauf oder Verkauf statt (obwohl wir dies in andere Apps unseres Unternehmens integrieren), und die tatsächlichen Daten werden von zahlreichen externen Quellen geliefert. Wir erlauben Benutzern jedoch, Kopien ihrer "Monitore" an andere Benutzer zu senden, sodass die Details, wie wir damit umgehen, wahrscheinlich als Geschäftslogik gelten. Es gibt tatsächlich eine mobile App, die derzeit mit einigen unserer Backend-Codes kommuniziert, und ich weiß genau, welchen Teil unseres Frontend-Codes ich in einer idealen Welt (im Grunde genommen das M in unserer Quasi-MVC) mit unserer Benutzeroberfläche teilen möchte Ich schätze, das ist die BLL für uns.
Ich akzeptiere die Antwort von user61852, da sie mir ein viel konkreteres Verständnis darüber gab, was "Geschäftslogik" tut und worauf es nicht ankommt.