Dzięki za opinie. Przemyślałem temat i przepraszam z góry za niepoprawnie skonstruowane pytanie. Chyba rozbudziło więcej wątpilwości niz powinno.
Generalnie wyjść widzę kilka, przynajmniej tak je widzę:
- Używanie DI jako standardowej drogi implementacji IoC.
- Mockowanie dużej ilości zależności w testach, bardzo brzydkie rozwiązanie.
- Przechylenie się jak najbardziej w kierunku funkcyjnego podejścia. Wtedy nie ma potrzeby żadnego obsługowania side effectów aplikacji. Monady zamiast DI. Generalnie temat bardzo popularny widzę.
https://earldouglas.com/posts/itof/di-to-reader.html i ku temu będę się składniał.
1,2 to dalej DI, wiec nie rozumiem jak to się ma do twojego pytanie.
3
Monady? widzę, że @jarekr000000 dobrze hype pompuje, drugi cqrs się robi. :-|
Monada ma inny charakter niż DI. Monadą "nie wstrzykniesz" wartości.
Nie wiem co jest dla ciebie tym side effects.
Wiec ustalmy.
Null nie musi być uznawany za side effects, nie widzę żadnego side effect'u w tym, że coś może być puste. Wyjątek też nie zawsze musi być uznawany za side effect. Wyjątek najczęściej jest, rzucany właśnie po to, żeby uniknąć side effects, w tym celu przerywa się akcje aplikacji wyjątkiem. Jest taki fajny przykład z mieszaniem farb, który tłumaczy side effect, zdaje się, że w książce Evansa.
Nienawidzę jak ktoś mówi mockowanie, zwłaszcza że 93% procent tych ludzi nie rozumie czym mock jest.