Właśnie zacząłem pracować nad projektem i używamy projektowania opartego na domenach (zgodnie z definicją Erica Evansa w opracowaniu opartym na domenach: rozwiązywanie problemów w sercu oprogramowania . Wierzę, że nasz projekt jest z pewnością kandydatem do tego projektu wzór, jak opisuje to Evans w swojej książce.
Walczę z pomysłem ciągłego refaktoryzacji.
Wiem, że refaktoryzacja jest koniecznością w każdym projekcie i nastąpi nieuchronnie wraz ze zmianami oprogramowania. Jednak z mojego doświadczenia wynika, że refaktoryzacja zachodzi, gdy zmieniają się potrzeby zespołu programistów, a nie rozumienie zmian w domenie („refaktoryzacja do lepszego wglądu”, jak to nazywa Evans). Najbardziej martwię się przełomami w zrozumieniu modelu domeny. Rozumiem, że wprowadzam małe zmiany, ale co, jeśli konieczna jest duża zmiana w modelu?
Jaki jest skuteczny sposób przekonania siebie (i innych), że powinieneś refaktoryzować po uzyskaniu wyraźniejszego modelu domeny? W końcu refaktoryzacja w celu poprawy organizacji kodu lub wydajności może być całkowicie oddzielna od ekspresji pod względem wszechobecnego kodu języka. Czasami wydaje się, że po prostu nie ma czasu na refaktoryzację.
Na szczęście SCRUM nadaje się do refaktoryzacji. Iteracyjna natura SCRUM ułatwia zbudowanie małego elementu i jego zmianę. Ale z czasem ten kawałek będzie się powiększał, a co, jeśli dojdziecie do przełomu, gdy ten kawałek jest tak duży, że zmiana go będzie zbyt trudna?
Czy ktoś pracował nad projektem opartym na domenie? Jeśli tak, dobrze byłoby uzyskać wgląd w ten temat. Szczególnie chciałbym usłyszeć historie sukcesu, ponieważ DDD wydaje się bardzo trudne do zrobienia.
Dzięki!