Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: CQRS czyli co....
Coraz częściej spotykam się z wzorcem (tekstami o nim) CQRS (Command Query Responsibility Segregation).Wzorzec bardzo przydatny ale "bije" w tradycyjne systemy relacyjne z normalizowanymi bazami transakcyjnymi, dlaczego? Najpierw tu opis:
http://martinfowler.com/bliki/CQRS.html
a teraz coś robię i nie tylko ja od pewnego czasu:
1. system pracowicie kolekcjonuje pojedyncze zapisy o sprzedaży
2. system pracowicie mieli tysiące danych analizując dane o sprzedaży
czujecie? zapisujemy pojedyncze zdarzenia a mielimy ich ogromne kolekcje, czy "sprzedawca" i "analityk" to te same byty w dziedzinie?
Nie koniecznie, jeżeli w modelu dziedziny "odkryjemy", że inaczej postrzega "świat" fakturzysta a inaczej "analityk" to w skali macro mamy system ERP i system BI/Hurtownia, pierwszy kolekcjonuje dane drugi je "wyciąga".
No i mamy CQRS od ładnych paru lat, czemu o tym teraz piszę? Bo warto taki wzór podziału stosować w skali micro w projektach... czyli w modelu dziedziny.
a Wasze zdanie o CQRS? Dlaczego napisałem, że "bije w bazy relacyjne"? Bo modelu dziedziny NIE NORMALIZUJEMY, bazę danych projektujemy "pod model dziedziny" a nie "pod model relacyjny" całości systemu..... Jarek Żeliński edytował(a) ten post dnia 27.03.12 o godzinie 08:24