/ / Umgang mit Codeänderungen in Ereignishandlern mit Event Sourcing-Muster [closed] - c #, Design-Patterns, Event-Sourcing

Wie man mit der Code-Modifikation in Event-Handlern mit Event-Sourcing-Pattern umgehen kann - c #, Design-Pattern, Event-Sourcing

Ich bin auf dem Weg zum Event Sourcing-Muster und es gibt eine Sache, die mich stört.

Was passiert, wenn ich für einige Quellcode ändere?Event-Handler, das nächste Mal, wenn ich den Objektstatus neu aufbauen (Ereignisse wiedergeben), bekomme ich möglicherweise ein völlig anderes Objekt oder, schlimmer noch, ich kann nichts für einen Ausnahmezustand in einem der Handler erhalten, der eine Regelprüfung durchführt.

Bedeutet das, dass der Code für die Ereignisbehandlung unveränderlich sein sollte? (Sobald Sie es geschrieben haben, berühren Sie es nie wieder). Ich mag diese Idee wirklich nicht.

Nach langem Nachdenken und Nachdenken kam ich zu dem Schluss, dass Event eine Nachricht ist und wie jede Nachricht in SOA versioniert werden sollte.</ strong>

Antworten:

1 für die Antwort № 1

Ich gehe davon aus, dass wir über die Implementierung von diskutieren http://www.martinfowler.com/eaaDev/EventSourcing.html in C # 4.0.

Im Allgemeinen sprechen Sie als Bibliotheksautor, wenn Sie eine öffentliche Methode, Eigenschaft oder ein Ereignis erstellen, gegenüber Verbrauchern, dass Sie sie nicht ändern werden.

Wenn Sie mehr Flexibilität in der Art der Objekte wünschen, die das Ereignis liefert, senden Sie ein Argument des Typs object und verwenden Sie bei der Handhabung Reflektion, um zu entscheiden, was Sie erhalten haben, und senden Sie es ordnungsgemäß ab.

Regelüberprüfung und Ausnahmeverbreitung können seinSie werden durch Calcelable-Ereignisse behandelt oder einfach durch Auspacken und Senden der Ausnahme im Argument arg. Aber Sie müssen sich fragen - wie beeinflussen diese Dinge den Zustand des beobachteten Objekts?