Mam do naprawy projekt w kodzie po poprzednim programiście.
Z Event Stormingu, który przeprowadziłem z biznesem wyszedł mi system, będący archetypem w wzorcu pipe and filters
Klasyczny przykład, gdzie mamy wejście w module i jakieś wyjście. Na wejściu dane + konfiguracja, który jest zmienna.
Trochę anty-coruption layer do systemów zewnętrznych.
Na początku wchodzą jakieś dane wraz z konfiguracją (zmienną) i na każdym kolejnym etapie są przetwarzane.
System nie działa cały czas produkcyjnie, lecz jest uruchamiany przez użytkownika z konsoli. Użytkownik zna podstawy Pythona i może sobie coś w programie i konfiguracji zmienić.
Całość napisana w Pythonie obiektowo. Są także moduły w C/C++.
Z racji wydajności są "wrappery" do modułów w C/C++ lecz i tak uruchamiane z poziomu Pythona.
Biznes życzy sobie bardzo dużej elastyczności w konfiguracji jest chęć na przepisanie modułów. Celem jest wprowadzenie elastyczności konfiguracji poszczególnych modułów.
Myślałem o modelowaniu systemu funkcyjnie, lecz totalnie nie zauważam z tego korzyści. System nie produkcji, która może się wywalić - w tym przypadku nic się nie stanie.
Z analizy i przeprowadzonego Domain Driven Design mam już podzielony system na trzy domeny, zrobiłem ubiquitus language i wszystko pięknie.
Więc mam książkowy Event Storming, książkowe Domain Driven Design. Domeny podzielone, ubuquitus language jest więc co może pójść nie tak?
Więc czy jest jakikolwiek sens robienia inaczej niż obiektowo?