Panowie mam wrażenie, że nie mieliście do czynienia z DDD w praktyce takie teoretyczne podstawy, książki, youtube to ja znam....chodzi mi o konkrety
Ja zacząłem akurat od praktyki, gdzie musiałem wejść w istniejące projekty, i dopiero teraz łapię podstawy teoretyczne. Ale to jest tak, że teoria jest często bardziej rozsądna od tego, jak w praktyce jest to zaimplementowane. W praktyce widzisz po prostu masę kodu i nie łapiesz się co jest co (zakładając, że wchodzisz w istniejący duży projekt). W teorii masz wyjaśnienie czemu tak, a nie inaczej.
Oczywiście, praktyka jest ważna (sam zawsze to powtarzam), tym niemniej problem z DDD jest taki, że jest to pewna filozofia projektowania oprogramowania, którą można różnie interpretować, nie zawsze rozsądnie, i różnie można implementować to w praktyce (gdzie zamiast ładnego designu masz np. big ball of mud).
To tak jak z Agile - w manifeście Agile ładnie to wygląda, a w firmach Agile to zwykle waterfall inaczej nazwany.
jakie są problemy i co rozwiązuje DDD np
Jeśli nie wiesz jakie problemy rozwiązuje, to znaczy, że odpowiedź jest prosta: nie stosuj.
Np. jeśli nie wiesz, jakie problemy rozwiązuje proponowany w DDD ubiquitous language
, to nie stosuj go (ew. zacznij jak nabierzesz doświadczenia zawodowego i zobaczysz, że większość problemów programisty bierze się z kiepskiej komunikacji z innymi ludźmi).
jeśli nie widzisz wartości w wydzielaniu logiki dziedziny, to nie wydzielaj (ew. zacznij jak nabierzesz doświadczenia i sparzysz się parę razy na fakcie, że jej nie wydzieliłeś)
DDD to żadna magia, tylko rzeczy do których ludzie sami by doszli mając odpowiednie doświadczenie - po prostu ktoś je zebrał w jedną spójną filozofię, opracował teorię i ponazywał elementy.