Panowie, wziąłem się na poważnie za #docker, mam kilka pytań na jego temat.
Nie używałem Docker-composer ponieważ w książkach jest słabo opisany oraz więcej info jest na temat dockerfile.
Posiadam konfiguracje Windows->wirtualka ( na której jest Debian i Docker) łącze się przez SSH do wirtualki.
1. Jaka praktyka jest stosowana w robieniu
Nie używałem Docker-composer ponieważ w książkach jest słabo opisany oraz więcej info jest na temat dockerfile.
Posiadam konfiguracje Windows->wirtualka ( na której jest Debian i Docker) łącze się przez SSH do wirtualki.
1. Jaka praktyka jest stosowana w robieniu








kod
#java #junit #testyjednostkowe #naukaprogramowania
Co do kodu, to po co Ci serwis mutujący obiekty, gdzie one same mogą to robić - Activity.vote(vote)
chciałeś napisać implementują interfejs Activity?
https://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html
Z dziedziczeniem też trzeba uważać, sprawdź sobie temat "Composition over inheritance". Jeszcze więcej szczegółów znajdziesz pod hasłem DDD.
Ja bym to rozdzielił - jest np (teoretycznie). Activity: artykuł, komentarz. To są oddzielne odpowiedzialności. Głosowanie może być na wybrany obiekt, więc vote = voteRepository.for(activity) a potem vote.apply(voteCommand). Wtedy głosowanie nie rusza obiektu treści, który jest już utrwalony i nie musi być
W sumie doczytując testy da się chyba ogarnąć use-case jaki masz.
Odnośnie tematu testów, pomijając powyższe dywagacje.
void addVoteUp() zmieniony:
@TestaddVote_shouldVoteUp() { // co testujemy, jaki
Kończąc jeszcze temat - samo głosowanie po mojemu (oprócz immutability)
https://github.com/unownedme/voter
Testy tylko na API (Facade). Co się dzieje w środku nie ma znaczenia, póki działa zachowanie. Nie jest thread-safe.
Myślę, że na podstawie tego będziesz wiedział mniej więcej o co chodziło - Vote wie co zrobić przy ustawieniu wartości (UP, DOWN). Article wie, że ma po prostu zwiększyć swoje score przy głosowaniu, ale to Vote wie o ile.
Trochę wszystko poplątane jest ze sobą. Na początku jest wygodnie mieć referencje we wszystkie strony, ale potem i tak trzeba będzie to usunąć. Artykuł zawiera głosy, czy głosy zawierają artykuł? Przy większej ilości zamienisz wszystko na LAZY, a potem i tak trzeba będzie to pobierać oddzielnie ze stronnicowaniem. Można to oddzielić zupełnie, jak np. podłącza się komentarze z facebook na stronie internetowej. One mają referencje do podstrony, ale nie
Jeszcze np. tagi zostały w user service i możesz się zastanowić, ile zależności między pakietami (serwisami z różnych pakietów) można zlikwidować.
Spotkasz jeszcze dużo projektów pisanych bez przemyślenia struktury (wielkie pakiety controller, services itp), ale zastanów się