Änderung firma musterprotokoll

Sie haben das Datenbank-pro-Dienst-Muster angewendet. Jeder Dienst verfügt über eine eigene Datenbank. Einige Geschäftstransaktionen umfassen jedoch mehrere Dienste, sodass Sie einen Mechanismus benötigen, um die Datenkonsistenz über die Dienste hinweg sicherzustellen. Stellen wir uns beispielsweise vor, dass Sie einen E-Commerce-Shop erstellen, in dem Kunden ein Kreditlimit haben. Die Anwendung muss sicherstellen, dass eine neue Bestellung das Kreditlimit des Kunden nicht überschreitet. Da sich Orders und Customers in unterschiedlichen Datenbanken befinden, kann die Anwendung nicht einfach eine lokale ACID-Transaktion verwenden. Beispielsweise kann eine Klasse, die die Validierung für eingehende Daten durchführt, das Strategiemuster verwenden, um einen Validierungsalgorithmus auszuwählen, der vom Datentyp, der Quelle der Daten, der Benutzerauswahl oder anderen diskriminierenden Faktoren abhängt. Diese Faktoren sind erst zur Laufzeit bekannt und erfordern möglicherweise eine radikal unterschiedliche Validierung. Die Validierungsalgorithmen (Strategien), die getrennt vom Validierungsobjekt gekapselt sind, können von anderen validierenden Objekten in verschiedenen Bereichen des Systems (oder sogar verschiedenen Systemen) ohne Codeduplizierung verwendet werden. Aufgrund dieser geringfügigen Änderung kann die vorherige Benutzerstruktur die JSON-Daten nicht analysieren. Wir sind gezwungen, das Domänenmodell zu ändern, um das neue Datenmodell zu analysieren: Sie können die Bibliothek so ändern, dass sie mit XML funktioniert. Dies kann jedoch dazu bestehen, dass ein vorhandener Code, der auf der Bibliothek basiert, gebrochen wird.

Und schlimmer noch, Sie haben möglicherweise überhaupt keinen Zugriff auf den Quellcode der Bibliothek, was diesen Ansatz unmöglich macht. Im Idealfall sollte jeder Dienst nur einen kleinen Satz von Verantwortlichkeiten haben. (Onkel) Bob Martin spricht über das Entwerfen von Klassen nach dem Single Responsibility Principle (SRP). Die SRP definiert eine Verantwortung einer Klasse als Grund für eine Änderung und besagt, dass eine Klasse nur einen Grund zur Änderung haben sollte. Es ist sinnvoll, das SRP auch auf das Servicedesign anzuwenden. Um eine lose Kopplung zu gewährleisten, verfügt jeder Dienst über eine eigene Datenbank. Die Aufrechterhaltung der Datenkonsistenz zwischen Diensten ist eine Herausforderung, da zwei Phasen-Commit/verteilte Transaktionen für viele Anwendungen keine Option sind.

This entry was posted in Uncategorized. Bookmark the permalink.