Skip to content

Clean Code Camp-Katas bei der Prosoz Herten GmbH

Notifications You must be signed in to change notification settings

Ergel/CleanCodeCamp

Repository files navigation

Event-Sourcing-Katas

Code Katas um das Konzept von Event Sourcing und CQRS zu verstehen, üben und vertiefen.

Übung A Implementiere bitte die folgende Schnittstelle so, dass die Änderungen als Ereignis aufgebildet und aufgezeichnet werden.

public interface IBenutzerAnmeldungService { void BenutzerRegistrieren(string benutzername, string vorname, string nachname, string passwort); bool DarfBenutzerAnmelden(string benutzername, string passwort); }

In welcher Form und wo diese Ereignisse gespeichert werden sollen, kannst du selber entscheiden.

Diese sind zu beachten: Es darf keine relationale Datenbank als Speichermedium genutzt werden. Die Ereignisse werden in Vergangenheit formuliert. Plausibilitätsprüfungen dürfen ignoriert werden. Ausnahmsweise dürfen die Passwörter als Plaintext gespeichert und geschickt werden. Unit-Tests müssen geschrieben werden. Du kannst dir selber entscheiden, ob Test-first oder Test-nach. Ziel der Übung A: Eine andere Sichtweise beim Entwickeln einer Lösung einnehmen.

Übung B: Erweitere bitte die Schnittstelle, damit der Benutzer sein Passwort ändern kann.

public interface IBenutzerAnmeldungService { void BenutzerRegistrieren(string benutzername, string vorname, string nachname, string passwort); bool DarfBenutzerAnmelden(string benutzername, string passwort); void PasswortAendern(string benutzername, string altesPasswort, string neuesPasswort); }

Diese sind zu beachten: Das neue Passwort darf nicht weniger als 6 Zeichen beinhalten. Unit-Tests müssen geschrieben werden. Du kannst dir selber entscheiden, ob Test-first oder Test-nach. Ziel der Übung B: Events filtern, die über gleiche DomainObjekte bzw. Aggregaten operieren. Das Aggregate-Konzept verstehen. Ein Gefühl für Platzieren von Business Regeln bekommen.

Übung C: Implementiere eine andere Komponente, die Mails an Administrator schickt wenn ein neuer Benutzer registriert wurde.

Übung D: NEventStore als Speichermedium für die Ereignisse einsetzen. Zielverständnis: Der Einsatz eines Event Stores bietet den Vorteil, dass alle Änderungen am System jederzeit durch eine Wiederholung der Events deterministisch nachgestellt werden können. Übung E:

Entwirf deine Schnittstelle erneut, dass du die Funktionen, die Zustand ändern und die Funktionen, die nur Daten abfragen, von einander trennst.

About

Clean Code Camp-Katas bei der Prosoz Herten GmbH

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages