Opublikowane 23 kwietnia 2017 5 minut
bookmark_border

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ć.

Często używam ściany pokrytej farbą tablicową jako miejsce do zapisywania zadań.

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.

IntelliJ rozpoznaje słowo todo jako forme zaznaczania miejsc w kodzie.

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.

Bartosz Wiśniewski

Full Stack do wszystkiego (serio). Z programowaniem mam do czynienia już od ponad 5 lat. Zajmowałem się tworzeniem aplikacji mobilnych i gier. Lubię Pythona, Go i JavaScript (ale tą dobrą stronę). Czasem buduję zabawki z Arduino.