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.
Antworten:
Ich gebe Ihnen einige Tipps zu CRUD- Anwendungen, da ich nicht viel Erfahrung mit Spielen oder grafisch intensiven Apps habe:
quelle
Es hört sich so an, als ob sich der Großteil Ihrer Arbeit in der Benutzeroberfläche befindet. Das Ändern des Anzeigeformats aus geschäftlichen Gründen impliziert keine Geschäftslogik. Die Änderung ist eine Änderung der Ansichtslogik.
In der Lage zu sein, das Format zu ändern, impliziert eine gewisse Geschäftslogik, die möglicherweise die Persistenz der Präferenz beinhaltet.
Das Format eines Cookies beizubehalten, könnte auch in der Ansichtsebene implementiert werden.
Dies könnte jedoch auf MVC-Weise implementiert werden. (Einige Modelle implementieren die Ansicht als eigene MVC, die Präferenzen verarbeiten kann.)
Machen Sie eine fundierte Vermutung über Ihre Bewerbung.
Die Geschäftslogik behandelt Dinge wie:
Wenn dies richtig gemacht wird, sollte es möglich sein, mehrere Ansichtskomponenten bereitzustellen, ohne das Modell oder die Geschäftslogik zu ändern. Wenn das aktuelle Design beispielsweise eine Website ist, verwendet ein neuer Ansichtsserver für ein iPhone oder eine Android-Anwendung das vorhandene Modell und die vorhandene Geschäftslogik. Dies kann neue Geschäftsfunktionen einführen, um Push-Benachrichtigungen bereitzustellen, wenn ein Auftrag ausgeführt wird, was möglicherweise Änderungen an mehreren Ebenen erfordert.
Diese Aufteilung ermöglicht die Trennung von Bedenken.
quelle