diff --git a/README.md b/README.md index dfbd321..0a2df3c 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,79 @@ Wymagania: Znajomość zasad programowania obiektowego, wiedza z zakresu: Techno Systemów Operacyjnych, Baz Danych. Umiejętność pracy z materiałami dodatkowymi, samodzielnego pozyskiwania informacji i analizy przykładów. +# Zagadnienia poruszane na laboratorium + +1. Przygotowanie środowiska programistycznego: +- utworzenie repozytorium, +- wybór edytora kodu źródłowego, +- logowanie komunikatów. +- pomiar pokrycia kodu testami, +- automatyczna weryfikacja kodu, +- automatyzacja (zapewnienie testowania, kompilowania, pomiaru pokrycia kodu i jego weryfikacji, +oraz budowy artefaktów programistycznych za pomocą jednego polecenia), + +2. Programowanie sterowane przez testy: +- rodzaje testów, +- testy jednostkowe: + - Red-Green-Refactor; + - testy behawioralne; + - asercje; + - mockowanie; + - testy sparametryzowane, +- testy eksploracyjne, +- debuggowanie kodu: + - dobre praktyki, + - krokowe uruchamianie programu, + - przerwania warunkowe, + - zdalne debuggowanie. + +3. Paradygmat programowania funkcyjnego: +- logika predykatów, +- funkcje i ich składanie, +- wyrażenia lambda, +- wzorzec projektowy map-reduce, +- wzorzec projektowy Maybe (wartości opcjonalne) i obsługa wartości `null`, +- wzorzec projektowy Try: obsługa wyjątków, +- wzorzec projektowy Either i Railway Oriented Programming, +- algorytm dziel i zwyciężaj na przykładzie wielowątkowego przetwarzania strumieniowego. + +4. Serializacja i deserializacja danych: +- wczytywanie i zapisywanie danych w XML, +- wczytywanie i zapisywanie danych w JSON. + +5. Mapowanie obiektowo-relacyjne (ORM): +- obiekty do transferu danych (DTO), +- obiekty dostępu do danych (DAO), +- model CRUD, +- optymalizacja dostępu (natywne zapytania SQL). + +6. Usługi sieciowe: +- dostęp do zewnętrznych usług sieciowych REST: + - z linii poleceń (curl); + - z dedykowanej aplikacji klienckiej; + - z własnoręcznie napisanego kodu, +- tworzenie usług sieciowych w oparciu o REST API: + - metody dostępu (GET, POST, PUT, DELETE); + - obsługa nieprawidłowych żądań: kody błędów; + - obsługa różnych formatów wartości zwracanej, +- obsługa generowania pliku "w locie", +- obsługa wgrywania plików na serwer. + +7. Serwery aplikacji: +- osadzanie aplikacji, +- monitorowanie osadzonej aplikacji, +- debuggowanie aplikacji (patrz zdalne debuggowanie). + +8. Interfejs użytkownika: +- serwowanie plików statycznych, +- obsługa odwołań i przekierowań, +- integracja z zewnętrznym frameworkiem. + +9. Integracja usług sieciowych: +- zabezpieczanie usług OAuth, +- autoryzacja i korzystanie z zewnętrznych usług. + +# Kryteria zaliczenia + +Zaliczenie zajęć polega na (inkrementalnym!) przygotowaniu projektu, który +pokrywa zagadnienia poruszane na zajęciach.