Sprawdź zawód
Lekcje kursu

Programista Java

Projektuj funkcje backendu w Java i Spring. Poznaj kontrakt HTTP, walidację, transakcje, obsługę błędów i odbiór zmian.

Kompendium zawodu — pojęcia i zwroty

Pojęcia w pracy

Kontroler
Punkt wejścia przyjmujący żądanie i zwracający odpowiedź.
DTO
Obiekt opisujący dane przekazywane przez granicę systemu.
Transakcja
Grupa zmian w bazie, które mają zostać zatwierdzone razem.
Wyjątek domenowy
Sygnał, że operacja naruszyła regułę procesu biznesowego.
Idempotencja
Własność operacji, której powtórzenie nie powiela skutku.

Zwroty w typowych sytuacjach

„Ustalmy kontrakt odpowiedzi przed zmianą implementacji.”
Chronisz aplikacje korzystające z usługi.
„Ten warunek sprawdzę w warstwie reguł zamówienia.”
Oddzielasz walidację formatu od decyzji biznesowej.
„Zapis zamówienia i pozycji powinien mieć jedną granicę transakcji.”
Ustalasz spójność powiązanych danych.

Podstawy · Lekcja 1 z 6

Kontrakt żądania i odpowiedzi

Kontroler odczytuje wejście i wywołuje właściwą operację. DTO opisuje pola widoczne dla klienta. Zapisz zachowanie w normalnym przebiegu i dla danych niepoprawnych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwUstal wejście
  2. Co zrobić dalejZaprojektuj odpowiedź
  3. Jak zakończyćZapisz wyjątki

Przykład z pracy

Odczyt zamówienia zwraca DTO pozbawione wewnętrznej notatki pracownika.

Ćwiczenie praktyczne

Rozpisz pola wyjściowe i odpowiedzi dla zamówienia znalezionego i brakującego.

Sprawdź się — opcjonalne pytanie

Co określa umowa API?

  • Nazwy prywatnych pól klasy
  • Dane wejściowe, widoczną odpowiedź i uzgodnione błędy
  • Położenie serwera w biurze
Pokaż odpowiedź i wyjaśnienie

Dane wejściowe, widoczną odpowiedź i uzgodnione błędy. Umowa opisuje to, na czym może polegać klient usługi.

Podstawy · Lekcja 2 z 6

Walidacja formatu i reguły domenowe

Format sprawdza typ i kompletność danych. Reguła domenowa ocenia operację w aktualnym stanie. Komunikat wyjaśnia sposób reakcji bez ujawniania wewnętrznych szczegółów.

Tok pracy w tej lekcji
  1. Co zrobić najpierwSprawdź format
  2. Co zrobić dalejOdczytaj stan
  3. Jak zakończyćZastosuj regułę

Przykład z pracy

Poprawny kod przesyłki nadal nie pozwala edytować zamkniętego zamówienia.

Ćwiczenie praktyczne

Podziel przyczyny odrzucenia zmiany adresu na błędy formatu i stanu.

Ponowienie zapisuje drugie zamówienie

Pierwsze wywołanie zapisuje zamówienie, lecz odpowiedź nie dociera. Klient wysyła ten sam identyfikator operacji.

Pokaż przykładową reakcję

Zwracam istniejący wynik po potwierdzeniu zgodności żądania. Klient odzyskuje odpowiedź bez powielania skutku.

Sprawdź się — opcjonalne pytanie

Który problem wynika z reguły biznesowej?

  • Pole adresu nie ma wymaganej wartości
  • Data ma błędny format
  • Zamówienie zakończono i adresu nie można zmienić
Pokaż odpowiedź i wyjaśnienie

Zamówienie zakończono i adresu nie można zmienić. Reguła zależy od stanu procesu, nawet przy poprawnych danych wejściowych.

Praca krok po kroku · Lekcja 3 z 6

Zapis wielu elementów i transakcja

Ustal, które zmiany tworzą jeden skutek. Jeśli zapis pozycji nie powiedzie się, przejrzyj oczekiwane wycofanie zmian. Dla komunikatów i systemów zewnętrznych zaplanuj osobny sposób obsługi niepowodzenia.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZdefiniuj skutek
  2. Co zrobić dalejUstal granicę
  3. Jak zakończyćObsłuż błąd

Przykład z pracy

Nagłówek zamówienia i pozycje są zapisywane razem, a integracja otrzymuje zdarzenie po potwierdzonym zapisie.

Ćwiczenie praktyczne

Narysuj granicę transakcji dla utworzenia zamówienia i wysłania potwierdzenia.

Sprawdź się — opcjonalne pytanie

Po co wspólna transakcja dla nagłówka i pozycji?

  • Żeby uniknąć zapisu zamówienia bez powiązanych pozycji
  • Żeby przyspieszyć wyświetlanie formularza
  • Żeby ukryć błąd przed monitoringiem
Pokaż odpowiedź i wyjaśnienie

Żeby uniknąć zapisu zamówienia bez powiązanych pozycji. Zatwierdzenie obejmuje spójny zestaw powiązanych zmian.

Praca krok po kroku · Lekcja 4 z 6

Informacja o błędzie i diagnoza

Oddziel odpowiedź dla użytkownika od danych potrzebnych zespołowi. Nadaj zdarzeniu identyfikator i zapisuj zwięzły kontekst bez danych wrażliwych. Ustal, które wyjątki są spodziewane.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZwróć komunikat
  2. Co zrobić dalejZapisz identyfikator
  3. Jak zakończyćOdszukaj etap

Przykład z pracy

Obsługa zgłasza identyfikator błędu. Programista odnajduje etap zapisu bez ujawniania treści zamówienia.

Ćwiczenie praktyczne

Przygotuj komunikat użytkownika i osobny zakres pól do dziennika.

Sprawdź się — opcjonalne pytanie

Co pozwala połączyć komunikat z właściwym zdarzeniem?

  • Cały formularz klienta w adresie URL
  • Identyfikator korelacji
  • Kolor komunikatu
Pokaż odpowiedź i wyjaśnienie

Identyfikator korelacji. Wspólny identyfikator ułatwia diagnozę przy małym zakresie danych.

Trudniejsze sytuacje · Lekcja 5 z 6

Ponowienie i zapis współbieżny

Zdefiniuj zakres i ważność identyfikatora operacji. Zapisz stan w miejscu, które zapewnia spójne rozstrzygnięcie współbieżnych żądań. Ustal reakcję przy tym samym kluczu i innych danych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwRozpoznaj klucz
  2. Co zrobić dalejPorównaj zawartość
  3. Jak zakończyćZwróć wynik

Przykład z pracy

Drugie żądanie po chwilowej utracie połączenia odczytuje status pierwszego zapisu.

Ćwiczenie praktyczne

Rozpisz trzy wyniki: pierwsze żądanie, zgodne ponowienie, konflikt danych.

Sprawdź się — opcjonalne pytanie

Co powinno nastąpić po zgodnym ponowieniu zakończonej operacji?

  • Zawsze utworzenie kopii zamówienia
  • Nadpisanie poprzednich danych z pominięciem walidacji
  • Zwrócenie uzgodnionego wyniku bez ponownego skutku
Pokaż odpowiedź i wyjaśnienie

Zwrócenie uzgodnionego wyniku bez ponownego skutku. Klucz operacji jest powiązany z pierwotnym skutkiem.

Trudniejsze sytuacje · Lekcja 6 z 6

Zmiana kontraktu i odbiór

Sprawdź, którzy klienci używają pola i jak reagują na nową wartość. Uzgodnij przejście ze starego formatu oraz warunek wycofania. Odbieraj zachowanie przez interfejs używany przez klienta.

Tok pracy w tej lekcji
  1. Co zrobić najpierwUstal klientów
  2. Co zrobić dalejSprawdź przebieg
  3. Jak zakończyćWdrażaj zgodnie z planem

Przykład z pracy

Starsza aplikacja ignoruje pole opcjonalne, ale nie rozpoznaje zmienionego znaczenia statusu.

Ćwiczenie praktyczne

Napisz plan wprowadzenia nowego pola i wycofania, gdy starszy klient zgłasza błąd.

Sprawdź się — opcjonalne pytanie

Jaki dowód potwierdza zgodność z dotychczasowym klientem?

  • Klient wykonuje swój przebieg i interpretuje odpowiedź zgodnie z umową
  • Nowa wersja kompiluje się bez ostrzeżeń
  • Lista klas wygląda jak przed zmianą
Pokaż odpowiedź i wyjaśnienie

Klient wykonuje swój przebieg i interpretuje odpowiedź zgodnie z umową. Zgodność dotyczy zachowania widocznego na granicy systemu.