Programista .NET / C#
Twórz usługi w C# i ASP.NET Core. Ucz się cyklu życia zależności, pracy w tle, anulowania oraz obsługi ponowień.
Kompendium zawodu — pojęcia i zwroty
Pojęcia w pracy
- Dependency injection
- Przekazywanie obiektowi potrzebnych zależności przez ustaloną konfigurację.
- Scope
- Zakres, w którym określone zależności współdzielą cykl życia.
- Worker
- Usługa wykonująca pracę bez oczekiwania użytkownika na otwarte żądanie.
- CancellationToken
- Mechanizm przekazywania sygnału przerwania operacji.
- Idempotencja
- Własność pozwalająca powtórzyć operację bez powielenia jej skutku.
Zwroty w typowych sytuacjach
- „Każdy przebieg w tle potrzebuje własnego zakresu zależności.”
- Pilnujesz czasu życia usług.
- „Użytkownik otrzyma identyfikator, a stan raportu odczyta oddzielnie.”
- Rozdzielasz przyjęcie zlecenia od wykonania.
- „Przy zatrzymaniu dokończymy bezpieczny etap albo zostawimy sprawę do ponowienia.”
- Chronisz spójność pracy.
Podstawy · Lekcja 1 z 6
ASP.NET i odpowiedzialność za żądanie
Żądanie ma określony czas i zakres. Odczytaj wejście, potwierdź uprawnienie i zwróć wynik lub informację o przyjęciu pracy. Długi proces może mieć własny stan dostępny niezależnie.
- Co zrobić najpierwSprawdź wejście
- Co zrobić dalejZapisz zlecenie
- Jak zakończyćZwróć identyfikator
Przykład z pracy
Użytkownik wysyła żądanie raportu i otrzymuje identyfikator do odczytu stanu.
Ćwiczenie praktyczne
Rozpisz dane przyjęcia oraz stan widoczny po wysłaniu żądania.
Sprawdź się — opcjonalne pytanie
Co warto zwrócić przy przyjęciu dłuższego zadania?
- Gotowy wynik przed jego powstaniem
- Identyfikator pracy i uzgodniony sposób odczytu stanu
- Wyłącznie nazwę procesu serwera
Pokaż odpowiedź i wyjaśnienie
Identyfikator pracy i uzgodniony sposób odczytu stanu. Identyfikator pozwala wrócić do zadania po zamknięciu żądania.
Podstawy · Lekcja 2 z 6
Zależności i ich cykl życia
Rozróżnij zależności współdzielone oraz związane z zakresem pracy. Unikaj przechowywania obiektu zakresowego w usłudze długotrwałej. Dla zadania utwórz odpowiedni zakres.
- Co zrobić najpierwRozpoznaj zależność
- Co zrobić dalejWyznacz zakres
- Jak zakończyćZakończ przebieg
Przykład z pracy
Worker otwiera zakres danych na czas obsługi konkretnej sprawy.
Ćwiczenie praktyczne
Narysuj cykl pracy zależności dla dwóch kolejnych zleceń.
Restart następuje w połowie tworzenia raportu
Worker zapisał część danych. Po restarcie zlecenie jest nadal w kolejce, a użytkownik oczekuje jednego spójnego wyniku.
Pokaż przykładową reakcję
Odczytuję trwały stan, stosuję uzgodnione ponowienie i potwierdzam kompletność. Przywracasz pracę bez podwójnego efektu i pozostawiasz spójny wynik.
Sprawdź się — opcjonalne pytanie
Co ogranicza współdzielenie stanu między zadaniami?
- Zachowanie jednego kontekstu dla wszystkich użytkowników
- Wydłużenie nazwy serwisu
- Osobny zakres potrzebnych zależności dla każdego przebiegu
Pokaż odpowiedź i wyjaśnienie
Osobny zakres potrzebnych zależności dla każdego przebiegu. Zakres porządkuje czas życia i zapobiega niechcianemu współdzieleniu.
Praca krok po kroku · Lekcja 3 z 6
Kolejka i ślad pracy
Zapisz identyfikator, stan i warunki podjęcia zlecenia. Zdecyduj, które dane muszą przetrwać restart. Udostępniaj status osobie mającej prawo go odczytać.
- Co zrobić najpierwZapisz pracę
- Co zrobić dalejAktualizuj stan
- Jak zakończyćPotwierdź wynik
Przykład z pracy
Kolejka pamięta zlecenie, a aplikacja pokazuje, że oczekuje na wykonanie.
Ćwiczenie praktyczne
Opisz stany oczekiwania, pracy i zakończenia oraz warunki przejść.
Sprawdź się — opcjonalne pytanie
Co pozwala odzyskać pracę po restarcie?
- Trwały zapis potrzebnych danych i stanu
- Wiadomość tylko w pamięci procesu
- Historia przeglądarki użytkownika
Pokaż odpowiedź i wyjaśnienie
Trwały zapis potrzebnych danych i stanu. Odzyskanie zależy od dostępnego śladu wykonania.
Praca krok po kroku · Lekcja 4 z 6
Anulowanie i zatrzymanie
Przekazuj sygnał anulowania do operacji, które go obsługują. Ustal etapy, w których można zakończyć bez pozostawienia niejasnego wyniku. Zapisz stan umożliwiający reakcję po uruchomieniu.
- Co zrobić najpierwOdbierz sygnał
- Co zrobić dalejZakończ etap
- Jak zakończyćZapisz stan
Przykład z pracy
Po sygnale zatrzymania worker nie zaczyna nowej sprawy i zapisuje stan bieżącej.
Ćwiczenie praktyczne
Wskaż granice bezpiecznego zatrzymania procesu raportowego.
Sprawdź się — opcjonalne pytanie
Po co propagujesz anulowanie?
- Żeby zawsze ignorować trwające żądania
- Żeby operacje mogły zakończyć pracę w uzgodniony sposób
- Żeby zniknęła potrzeba zapisu stanu
Pokaż odpowiedź i wyjaśnienie
Żeby operacje mogły zakończyć pracę w uzgodniony sposób. Sygnał koordynuje kontrolowane kończenie pracy.
Trudniejsze sytuacje · Lekcja 5 z 6
Ponowienie bez podwójnego wyniku
Przypisz pracy stabilny identyfikator. Przed zapisem sprawdź, jaki skutek już istnieje i jakie warunki chronią przed równoczesnym wykonaniem. Oddziel powtarzalne niepowodzenie od chwilowego błędu.
- Co zrobić najpierwRozpoznaj zlecenie
- Co zrobić dalejSprawdź skutek
- Jak zakończyćPotwierdź wynik
Przykład z pracy
Po chwilowej niedostępności zlecenie wraca do obsługi bez powielenia pliku.
Ćwiczenie praktyczne
Ułóż reakcje na pierwszy przebieg, ponowienie i zapis zakończony.
Sprawdź się — opcjonalne pytanie
Co zabezpiecza przed podwójnym wynikiem?
- Wygenerowanie nowego losowego identyfikatora dla tego samego zlecenia
- Ukrycie pliku przed użytkownikiem
- Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji
Pokaż odpowiedź i wyjaśnienie
Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji. Stała tożsamość pracy pozwala rozpoznać poprzednie wykonanie.
Trudniejsze sytuacje · Lekcja 6 z 6
Obserwowanie i odbiór wydania
Obserwuj kolejkę, czas, błędy i skutek widoczny użytkownikowi. Przed wdrożeniem sprawdź przerwanie oraz ponowienie. W logach zachowaj kontekst bez zapisu zbędnych danych.
- Co zrobić najpierwOdtwórz warunki
- Co zrobić dalejSprawdź przebieg
- Jak zakończyćZapisz dowód
Przykład z pracy
Worker przechodzi odbiór po przerwaniu pracy i dokończeniu tego samego raportu.
Ćwiczenie praktyczne
Przygotuj kryteria odbioru dla aplikacji i zespołu utrzymania.
Sprawdź się — opcjonalne pytanie
Który dowód potwierdza bezpieczny restart?
- Jedno kompletne zakończenie tej samej sprawy po wznowieniu
- Samo uruchomienie procesu
- Zwiększenie liczby wpisów w logu
Pokaż odpowiedź i wyjaśnienie
Jedno kompletne zakończenie tej samej sprawy po wznowieniu. Odbiór łączy zachowanie techniczne z wynikiem użytkownika.