Wpis z mikrobloga

@Cheessys:
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. Interfejsy
  • Odpowiedz
@cypo:
Zrobiłem coś takiego na podstawie tego repo co podesłałeś - git
Jak możesz to zobacz czy jest ok, narazie tylko w ArticleService zmieniłem.
Jeszcze mam kilka pytan
Czy dopuszczalne jest takie coś co zrobiłem w UserController że podmieniłem id głosu na id posta?
I wracając do testów czy dopuszczalne jest tworzenie konstruktora tylko na potrzeby testow?
I czy powinienem pisać testy dla metod które tylko biorą dane z db i
  • Odpowiedz
@Cheessys:
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 muszą
  • Odpowiedz
@cypo: Sorki że znowu zawracam głowę, ale przebudowałem trochę ten projekt i udało mi się wszystkie głosy wcisnąć w jedną klasę chociaż nie jestem pewny czy to dobry pomysł. Dodałem też pakiet profile z controllerem i servisem, który woła do innych serwisów po dane, bo jednak te endpointy nie pasowały do userController, a nie chciałem ich rozrzucać po wszystkich klasach. Teraz serwisy komunikują się tylko z innymi serwisami i z repository
  • Odpowiedz
@Cheessys: Widzę progres. Chcę zobaczyć wszystko o postach, wchodzę w pakiet z postami i znajduję tylko to. Przy zależnościach między serwisami trzeba uważać tylko na cykle (nie może być referencji w dwie strony).
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ę teraz,
  • Odpowiedz