Aplikacja Client-Server || Part 4 || Reorganizacja i optymalizacja kodu
🚀

Aplikacja Client-Server || Part 4 || Reorganizacja i optymalizacja kodu

notion image
 
 

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.

 
notion image

Wykonane prace


|| Link do repozytorium ||

Client-Server-Application
jakubBoneUpdated 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
 
notion image
 

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 klasa RequestFactory

Pakiet operations:

  • Zbiór klas odpowiedzialnych za obsługę żądań i zwracanie odpowiedniej odpowiedzi
 
Video preview
 

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

 
 
notion image
 
 

Ś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