Wprowadzenie
Poprzednio wprowadziłem szereg usprawnień w obszarze zarządzania wiadomościami oraz użytkownikami, co poprawiło interakcje z systemem poczty. Prace obejmowały udoskonalenie logiki rejestracji i logowania oraz zarządzania uprawnieniami. Ponadto, przeprowadziłem refaktoryzację kodu połączeń klient-serwer, co usprawniło komunikację pomiędzy elementami systemu. Teraz skupułem się na reorganizacji kodu, a wykonane pracę przedstawiam poniżej.
Wykonane prace
|| Link do repozytorium ||
Client-Server-Application
jakubBone • Updated Sep 2, 2024
1. Reorganizacja obsługi zalogowanych użytkowników:
- Izolacja operacji dla zalogowanych użytkowników do oddzielnych klas w pakiecie
operations
- Zwiększenie modularności i łatwości utrzymania kodu poprzez wydzielenie odpowiedzialności
2. Optymalizacja zarządzania połączeniami w klasie Client:
- Uproszczenie metod odpowiedzialnych za połączenie i obsługę żądań
- Wprowadzenie klasy
RequestFactory
, która dostarcza odpowiednie obiekty żądań do użycia w komunikacji klient-serwer.
3. Refaktoryzacja mechanizmu wysyłania żądań:
- Zmiana formy wysyłania danych z systemu tabeli na dane zawarte w obiekcie
Request
- Uproszczenie systemu poprzez izolację fragmentów kodu do oddzielnych metod, co poprawia strukturę i klarowność kodu
4. Zabezpieczenie i aktualizacja danych użytkowników:
- Tworzenie pliku admina po uruchomieniu aplikacji
- Wprowadzenie biblioteki
BCrypt
, która zapewnia bezpieczeństwo poprzez unikalne hashowanie haseł, nawet jeśli są one identyczne
Struktura kodu
Pakiety client
oraz server
:
- Client - odpowiedzialny za nawiązywanie połączenia i komunikację z serwerem
- Server - nasłuchuje na przychodzące połączenia oraz obsługuje żądania od klientów
Pakiet mail
:
- Oferuje prosty system pocztowy, który zapewnia funkcjonalności niezbędne do zarządzania mailami, w tym wysyłanie, odbieranie i przechowywanie wiadomości
Pakiet user
:
- Zawiera system zarządzania użytkownikami, w tym funkcje logowania i zarządzania uprawnieniami użytkowników
Pakiet utils
:
- Zbiór klas pomocniczych, które ułatwiają realizację różnych zadań pomocniczych i wspólnych operacji w całej aplikacji
Pakiet request
:
- Zbiór klas pomocniczych, które dziedziczą po klasie nadrzędnej
Request
(reprezentują specyficzne zapytania do obsłużenia) oraz klasaRequestFactory
Pakiet operations
:
- Zbiór klas odpowiedzialnych za obsługę żądań i zwracanie odpowiedniej odpowiedzi
Jakie dalsze plany?
1. Aktualizacja systemu zapisów danych użytkownika do pliku (przy każdej zmianie danych)
2. Zapoznać się z JUnit
3. JUnit5 w IDEA
4. Napisać testy do aktualnego kodu
Śledź moją aktywność na LinkedIn
Zapisz się na mój newsletter
Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl