Sprawdź zawód
Lekcje kursu

Frontend Developer

Buduj dostępne interfejsy, które działają na telefonie i komputerze.

Kompendium zawodu — pojęcia i zwroty

Pojęcia w pracy

DOM
Model dokumentu używany przez przeglądarkę. Zmiana elementu DOM może zmienić to, co użytkownik widzi lub obsługuje.
Stan interfejsu
Sytuacja, którą ekran pokazuje, np. ładowanie, sukces, pusty wynik albo błąd.
Regresja
Pogorszenie działającej wcześniej funkcji po wprowadzeniu zmiany.

Zwroty w typowych sytuacjach

„Błąd odtwarza się na wąskim ekranie po wysłaniu formularza.”
Zgłoszenie zawiera warunek i czynność, od których można zacząć diagnozę.
„Po błędzie sieci zachowajmy wpisane dane i umożliwmy ponowienie.”
Ustalasz zachowanie formularza po przerwanym zapisie.
Kod na ekranie komputera
Zdjęcie Rob Wingate / Unsplash

Podstawy · Lekcja 1 z 9

Struktura dostępnej strony

Elementy HTML przekazują znaczenie. Użyj nagłówków, aby uporządkować treść.

Link służy do nawigacji, a przycisk do wykonania działania. Etykieta pola powinna wskazywać, jakiej informacji oczekujesz.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZaprojektuj strukturę
  2. Co zrobić dalejStruktura dostępnej strony
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Zaprojektuj strukturę

Wybierz nagłówki, etykiety i kontrolki opisujące zadanie. Zbuduj najkrótszą ścieżkę do wysłania formularza.

Ćwiczenie praktyczne

Zbuduj formularz kontaktowy z etykietą pola e-mail i przyciskiem wysłania. Przejdź cały formularz klawiszem Tab.

Sprawdź się — opcjonalne pytanie

Który element pasuje do wysłania formularza?

  • Nagłówek
  • Przycisk
  • Ozdobny obraz
Pokaż odpowiedź i wyjaśnienie

Przycisk. Przycisk opisuje działanie i obsługuje klawiaturę bez dodatkowego kodu.

Podstawy · Lekcja 2 z 9

Model pudełkowy

Szerokość elementu obejmuje treść, padding i obramowanie zgodnie z ustawieniem box-sizing. Margines tworzy odstęp na zewnątrz. W narzędziach przeglądarki porównaj deklarowaną szerokość z wymiarem renderowanym.

Tok pracy w tej lekcji
  1. Co zrobić najpierwTreść
  2. Co zrobić dalejPadding i obramowanie
  3. Jak zakończyćOdstęp zewnętrzny

Przykład z pracy

Karta ma width: 300px, padding po 16px i ramkę po 1px. Przy content-box zajmuje 334px bez marginesu. Przy border-box treść ma 266px, a całe pudełko 300px.

Ćwiczenie praktyczne

Utwórz dwie karty z tymi ustawieniami. Sprawdź ich rzeczywiste szerokości w DevTools.

Symulacja rozmowy

Kiedy użyjesz linku, a kiedy przycisku?

Porównaj z przykładową odpowiedzią

Link prowadzi pod adres. Przycisk wywołuje działanie, np. wysyła formularz. Wybieram natywne elementy, aby przeglądarka zapewniła oczekiwane zachowanie klawiatury.

Sprawdź się — opcjonalne pytanie

Która wartość wlicza padding i obramowanie do deklarowanej szerokości?

  • content-box
  • border-box
  • margin-box
Pokaż odpowiedź i wyjaśnienie

border-box. Border-box obejmuje treść, padding i obramowanie. Margines pozostaje poza pudełkiem.

Podstawy · Lekcja 3 z 9

Od zdarzenia do aktualizacji DOM

Oddziel odczyt danych z formularza, zmianę stanu i aktualizację widoku. Zdarzenie submit obsługuje też wysłanie przez Enter. Tekst pochodzący od użytkownika przypisz przez textContent.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZdarzenie submit
  2. Co zrobić dalejZmiana stanu
  3. Jak zakończyćAktualizacja DOM

Przykład z pracy

Lista zadań dodaje element po zatwierdzeniu formularza. Puste pole zgłasza błąd. Po dodaniu wpisu stan i widoczna lista zawierają ten sam element.

Ćwiczenie praktyczne

Zbuduj listę zadań z formularzem i sprawdź działanie przy pustym wpisie oraz wprowadzaniu przez Enter.

Sprawdź się — opcjonalne pytanie

Jak wstawić zwykły tekst wpisany przez użytkownika?

  • Przez innerHTML z bezpośrednim wpisem
  • Przez ustawienie atrybutu style
  • Przez textContent
Pokaż odpowiedź i wyjaśnienie

Przez textContent. textContent traktuje wprowadzoną wartość jako tekst, dzięki czemu znaczniki pozostają znakami.

Praca krok po kroku · Lekcja 4 z 9

Układ dopasowany do ekranu

Zacznij od jednej kolumny. Pozwól kartom zajmować dostępną szerokość i dodaj kolumny, gdy mieści się w nich czytelna treść. CSS Grid obsłuży układ, a Flexbox sprawdzi się w nawigacji i pojedynczych rzędach.

Tok pracy w tej lekcji
  1. Co zrobić najpierwSprawdź układ i wejście
  2. Co zrobić dalejUkład dopasowany do ekranu
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Sprawdź układ i wejście

Przetestuj szerokości 360 i 1280 px, długą treść i obsługę samą klawiaturą. Sprawdź widoczność fokusu.

Ćwiczenie praktyczne

Ułóż sześć kart. Sprawdź stronę przy 360 i 1280 pikselach oraz z długim tytułem karty.

Sprawdź się — opcjonalne pytanie

Jak wykryjesz problem z wąskim ekranem?

  • Sprawdzisz wyłącznie kolor przycisku
  • Otworzysz podgląd przy maksymalnej szerokości
  • Przetestujesz mały viewport i długie treści
Pokaż odpowiedź i wyjaśnienie

Przetestujesz mały viewport i długie treści. Mały viewport i długa treść ujawniają problemy z przepełnieniem.

Praca krok po kroku · Lekcja 5 z 9

Formularz z błędem przy polu

Komunikat powinien wskazywać konkretne pole i sposób poprawienia. Powiąż pomoc przez aria-describedby, a nieprawidłowe pole oznacz aria-invalid. Po nieudanej walidacji zachowaj dane wpisane poprawnie.

Tok pracy w tej lekcji
  1. Co zrobić najpierwPole
  2. Co zrobić dalejKomunikat z instrukcją
  3. Jak zakończyćPonowienie

Przykład z pracy

Użytkownik wpisał adres bez domeny. Komunikat „Podaj adres w formacie imie@example.pl” pojawia się przy polu i jest powiązany z nim w kodzie.

Ćwiczenie praktyczne

Zbuduj dwa pola i przejdź wysyłkę z jednym błędnym. Sprawdź powiązanie komunikatu w drzewie dostępności.

Sprawdź się — opcjonalne pytanie

Co najlepiej łączy treść błędu z polem?

  • aria-describedby wskazujące identyfikator komunikatu
  • Sam czerwony kolor ramki
  • Niepowiązana informacja w stopce
Pokaż odpowiedź i wyjaśnienie

aria-describedby wskazujące identyfikator komunikatu. Powiązanie programowe udostępnia tekst komunikatu przy odczycie pola.

Praca krok po kroku · Lekcja 6 z 9

Wyszukiwanie odporne na spóźnione wyniki

Wysłanie zapytań w kolejności A i B nie gwarantuje takiej samej kolejności odpowiedzi. Anuluj nieaktualne pobieranie lub dopuszczaj aktualizację tylko dla ostatniego identyfikatora zapytania.

Tok pracy w tej lekcji
  1. Co zrobić najpierwWejście
  2. Co zrobić dalejOznaczenie lub anulowanie zapytania
  3. Jak zakończyćBieżący wynik

Przykład z pracy

Zapytanie „an” odpowiada po 700 ms, a „analityk” po 150 ms. Wynik „an” nie może zastąpić listy dla bieżącego tekstu.

Ćwiczenie praktyczne

Zasymuluj dwie odpowiedzi w odwrotnej kolejności. Udokumentuj, jak blokujesz nadpisanie wyniku.

Sprawdź się — opcjonalne pytanie

Który wynik ma prawo zaktualizować listę?

  • Odpowiedź, która przyszła najpóźniej
  • Wynik dla aktualnego zapytania
  • Odpowiedź o większej liczbie pozycji
Pokaż odpowiedź i wyjaśnienie

Wynik dla aktualnego zapytania. Wynik musi odpowiadać wartości, którą użytkownik widzi w polu.

Trudniejsze sytuacje · Lekcja 7 z 9

Stany interfejsu po zapytaniu

Zaplanuj cztery widoki: ładowanie, dane, pusty wynik i błąd. Przy błędzie daj użytkownikowi drogę powrotu. Zablokuj ponowne wysłanie tylko na czas oczekiwania i przywróć przycisk po zakończeniu.

Tok pracy w tej lekcji
  1. Co zrobić najpierwObsłuż stany zapytania
  2. Co zrobić dalejStany interfejsu po zapytaniu
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Obsłuż stany zapytania

Rozpisz stan ładowania, wynik, brak danych i błąd. Zadbaj o zachowanie wpisanych danych przy ponowieniu.

Ćwiczenie praktyczne

Dodaj wyszukiwanie do listy kart i wymuś kolejno każdy z czterech stanów.

Sprawdź się — opcjonalne pytanie

Co pokazać po nieudanym pobraniu listy?

  • Komunikat i możliwość ponowienia
  • Pustą listę bez wyjaśnienia
  • Bezterminowy wskaźnik ładowania
Pokaż odpowiedź i wyjaśnienie

Komunikat i możliwość ponowienia. Czytelny błąd wyjaśnia stan, a przycisk ponowienia pozwala odzyskać dane.

Trudniejsze sytuacje · Lekcja 8 z 9

Diagnoza opóźnień interfejsu

Oddziel czas pobrania zasobu od czasu obliczeń i renderowania. Nagraj w DevTools konkretną interakcję, wskaż najdłuższe zdarzenie i powtórz pomiar po jednej zmianie.

Tok pracy w tej lekcji
  1. Co zrobić najpierwOdtwórz
  2. Co zrobić dalejZmierz
  3. Jak zakończyćPorównaj po zmianie

Przykład z pracy

Kliknięcie filtra działa wolno mimo szybkiego API. Profil pokazuje generowanie 5000 elementów w jednym przebiegu. Paginacja ogranicza liczbę renderowanych kart.

Ćwiczenie praktyczne

Porównaj czas filtrowania dla 50 i 5000 kart. Zapisz urządzenie, metodę, wynik oraz decyzję.

Sprawdź się — opcjonalne pytanie

Co sprawdzasz najpierw po zgłoszeniu wolnego filtra?

  • Wymianę frameworka
  • Liczbę kolorów interfejsu
  • Pomiar konkretnej interakcji i źródła kosztu
Pokaż odpowiedź i wyjaśnienie

Pomiar konkretnej interakcji i źródła kosztu. Pomiar rozróżnia problem sieciowy, koszt pracy skryptu i renderowanie.

Trudniejsze sytuacje · Lekcja 9 z 9

Przegląd wdrożenia i plan cofnięcia

Zapisz zakres zmiany, podstawowe ścieżki i sygnały awarii. Testuj przewidywalny wynik po wdrożeniu, np. wysłanie formularza, oraz możliwość powrotu do poprzedniej wersji.

Tok pracy w tej lekcji
  1. Co zrobić najpierwTest scenariusza
  2. Co zrobić dalejWeryfikacja po wydaniu
  3. Jak zakończyćDecyzja o cofnięciu

Przykład z pracy

Nowy formularz przechodzi test na komputerze, ale przy wolnym łączu zapisuje dwa zgłoszenia. Kontrola obejmuje też podwójne kliknięcie i ponowienie po błędzie.

Ćwiczenie praktyczne

Przygotuj checklistę wydania formularza z kryterium przerwania i planem wycofania.

Sprawdź się — opcjonalne pytanie

Co najlepiej nadaje się na kryterium wycofania?

  • Zgłoszenia pojawiają się podwójnie w potwierdzonym scenariuszu
  • Kolor przycisku różni się na monitorach
  • Nazwy plików uległy zmianie
Pokaż odpowiedź i wyjaśnienie

Zgłoszenia pojawiają się podwójnie w potwierdzonym scenariuszu. Kryterium powinno opisywać mierzalne naruszenie istotnej ścieżki.