DevLog #7
Uwielbiam programować w Javie!
Rozwiązywanie problemów
Często tak mam, że muszę przez jakiś czas trochę pomyśleć a później mogę lecieć bez zatrzymywania się. W taki właśnie sposób nazbierało mi się kilka problemów jakich muszę rozwiązać.
Task jako ElementCollection
Buga z zadaniami zauważyłem już kiedyś, ale wtedy zapomniałem dodać go jako GitHubowego issue. Tak swoją drogą to niewiele osób używa rozwiązań GitHuba a szkoda, bo są nie najgorsze.
Rozwiązanie problemu było trudniejsze niż myślałem i wymagało ode mnie podjęcia decyzji. Czy Task
ma być encją czy zwykłą formą danych, takim POJO. Zadałem sobie pytanie czy zadanie może istnieć bez listy i stwierdziłem, że nie, zatem nie ma potrzeby posiadania takiej encji. Im mniej kodu tym lepiej.
@ElementCollection(targetClass = Task.class)
private List tasks;
Adnotacja ElementCollection
sprawia, że encja może trzymać listę innych obiektów, choć w rzeczywistości jest to podzielone na dwie tablice podobnie jak w relacji OneToMany
. Teraz zadania nie wymagają zapisu do swojego repozytorium, nie potrzebują też pola ID z którym właśnie był problem. Hurra!
Nagradzanie za zadania
Nagradzanie za nawyki już jest to pomyślałem, że zrobienie podobnego kodu dla zadań i ich list nie będzie trudne. Nie myliłem się. Kilka klas doszło, bo musiałem stworzyć Service
dla takiej operacji, ale wszystko napisałem w ładnym stylu z odpowiednią dokumentacją i testami. Szybko i przyjemnie --- to właśnie tak mi się kojarzy kodzenie w Javie.
EOF i przyszłość
Tydzień spokojny i pełen relaksu przed maturą. Java jest o wiele bardziej przewidywalna niż JavaScript co oszczędza tak mnóstwo czasu mimo, że Spring przeładowuje się te 5 sekund. Może warto byłoby pomyśleć o przyszłości tego projektu. Wiem, że następna funkcjonalność jaką przyjdzie mi stworzyć to przypomnienia, powiadomienia o wykonaniu zadań i historię operacji. Powoli też myślę nad aplikacją Androida, ale najpierw muszę wykonać do końca frontend przeglądarkowy, bo w końcu on też ma działać na mobilkach.