Hej, zastanawiam się od jakiegoś czasu nad tym jak powinien wyglądać obiekt Usera. Generalnie nie tylko teoretycznie, bo klepię apkę, ale do rzeczy:
Wydaje mi się, że agregat Profilu, który zawiera w sobie dane na potrzeby logiki apki: nazwę profilu, jakieś zdjęcia i inne dane dotyczące samej domeny apki powinien nic nie wiedzieć o czymś takim jak hasło i jest typowo agregatem domenowym. Jego identyfikatorem jest po prostu jakieś id, którym może być np. email użytkownika (jeśli założymy, że każdy user pod jednym mailem może posiadać 1 profil).
Po drugiej stronie mamy w części infrastruktury obiekt w stylu UserAuthData, które zawiera w sobie już zahashowane hasło i jego id jest czymś po czym rejestrujemy użytowników - w moim przypadku jest to email.
I wtedy działałoby to tak, że user rejestruje się - zapisujemy UserAuthData i potem przy 1 wejściu do klienta apki dostaje info, że nie ma jeszcze utworzonego profilu, uzupełnia wszystkie dane i wtedy tworzymy agregat Profilu z id takim jak email.
Email wydaje się unikalnym identyfikatorem.
Dobrze kombinuję ?