Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli a sakk az esemény összesítését az mvvmcrosshoz képest


Hogyan kezeli a sakk az esemény összesítését az mvvmcrosshoz képest


Amikor összehasonlítjuk, hogy a sakk hogyan kezelheti az események összesítését azzal, hogy az MVVMCross hogyan kezeli azt, mindkét forgatókönyvben figyelembe kell vennünk az események összesítésének kontextusát és célját.

Esemény összesítése sakkban

A sakkkal összefüggésben az események összesítése utalhat a játék során bekövetkező mozdulatok vagy események sorrendjének kezelésére és feldolgozására. Ez magában foglalhatja az egyes lépések nyomon követését, rögzítését, ellenőrzését vagy ellenőrzését. Egy domain-vezérelt kialakítású (DDD) megközelítésben a sakkmozdulatokat domain eseményekként lehet modellezni, hasonlóan ahhoz, ahogyan más rendezvény-forrású rendszerekben kezelik őket. Minden esemény egy speciális akciót vagy állapotváltozást jelentene a játékban, például egy darab mozgatását vagy rögzítését. Ezeket az eseményeket naplóban vagy naplóban tárolják, lehetővé téve a játék jelenlegi állapotát ezen események újbóli lejátszásával.

Például egy sakkjáték olyan eseményeket is használhat, mint a "Piecemoved", "Készítve" vagy "CheckMateOccured". Ezek az események továbbra is fennmaradnak, és felhasználhatók a játék elemzésére vagy a különféle játékállamok közötti konzisztencia biztosítására. Maga a sakk azonban lényegében nem kezeli az események összesítését a szoftver keretrendszereiben; Ehelyett olyan tartományt biztosít, ahol az események összesítése alkalmazható.

Esemény összesítése az mvvmcross -ban

Az MVVMCross egy eseményösszesítési mintát használ a Messenger beépülő modulján. Ez a plugin központosított mechanizmust biztosít az alkatrészek számára, hogy kommunikálhassanak egymással, anélkül, hogy szorosan kapcsolnának. Ez lehetővé teszi több kiadó számára, hogy üzeneteket (eseményeket) küldjön több előfizetőnek egy közvetítőn keresztül, amely maga a hírnök.

Az MVVMCross Messenger olyan funkciókat támogat, mint például az események közzététele, az események feliratkozása és az előfizetések kezelése. Gyenge referenciákat használ a memória szivárgásainak megakadályozására, biztosítva, hogy az alkatrészek összegyűjtsék a szemetet, még akkor is, ha az eseményekre feliratkoznak. Ez a megközelítés különösen hasznos az MVVM (Model-View-ViewModel) architektúrákban, ahol a nézeti modelleknek közvetlen referenciák nélkül kell kommunikálniuk egymással.

Az MVVMCross események összesítésének legfontosabb szempontjai a következők:

- Kiadási módszerek: Az összetevők közzétehetik az eseményeket olyan módszerekkel, mint a „Publish”.
- Előfizetési módszerek: Az összetevők feliratkozhatnak az eseményekre olyan módszerekkel, mint az „előfizetés”, az „előfizetés” vagy az „előfizetésespoolThread”.
- Előfizetéskezelés: A Messenger módszereket kínál arra, hogy ellenőrizze, vannak -e előfizetések konkrét eseményekre vagy címkékre, lehetővé téve az eseménykezelés jobb kezelését.

összehasonlítás

Míg a sakk modellezhető az események aggregálódási alapelvei felhasználásával, hasonlóan a szoftverrendszerekben, az MVVMCross az MVVM architektúrákhoz tervezett események összesítésének konkrét megvalósítását biztosítja. A fő különbség a kontextusban és a célban rejlik:

- Sakk: Az események aggregálása inkább a játékállapotok nyomon követéséről és kezeléséről szól a domain események révén, amely az események beszerzési alapelveinek fogalmi alkalmazása.
- MVVMCross: Az események összesítése műszaki megvalósítás a kommunikáció megkönnyítésére egy alkalmazásban a lazán kapcsolt összetevők között, egy központosított hírnök segítségével.

Összefoglalva: a sakk nem "kezeli" az események összesítését ugyanúgy, mint az mvvmcross; Ehelyett a sakk olyan tartományt biztosít, ahol az események összesítési koncepcióit alkalmazhatják. Az MVVMCross viszont a szoftverfejlesztéshez az események összesítésének konkrét megvalósítását kínálja.

Idézetek:
[1] https://ep2024.europython.eu/session/event-sourcing-from-the-tourp-p.
[2] https://www.mvvmcross.com/documentation/plugins/messenger
[3] https://debeezium.io/blog/2020/02/10/event-sourcing-vs-cdc/
[4] https://github.com/mateusznakodach/ddd.eventsourcing.portsandadapters.ypescript.nestjs.chess
[5] https://www.linkedin.com/advice/0/how-do-you-thourle-multiple-event-sources
[6] https://securosis.com/blog/understing-and-selecting-siem-lm-aggregation-normalization-and-enrichmen/
[7] https://www.youtube.com/watch?v=mfsrsqza1uq
[8] https://prismlibrary.github.io/docs/event-aggregator.html
[9] https://learn.microsoft.com/en-us/analysis-services/multidimenziós-models-olap-logicical-bube-objects
[10] https://www.chess.com/forum/view/tournaments/why-delay-next-pound-for-mathematicatathy-irrelevant-games
[11] https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicet-betwewew-models/