Bądźmy w kontakcie

Plan Szkolenia

Wprowadzenie do Groovy

  • Wprowadzenie do Apache Groovy
  • Historia i ewolucja języka Groovy
  • Groovy i maszyna wirtualna Java
  • Groovy jako język skryptowy i programistyczny
  • Powszechne zastosowania języka Groovy
  • Groovy w projektach opartych na Javie
  • Zalety stosowania Groovy w połączeniu z Javą
  • Przegląd przykładowej aplikacji

Przegląd funkcji języka Groovy

  • Typowanie dynamiczne i opcjonalne statyczne
  • Możliwości skryptowe Groovy
  • Kompaktowa składnia i rozszerzenia języka
  • Zamknięcia (closures) i programowanie funkcyjne
  • Kolekcje Groovy i rozszerzone interfejsy API
  • Przeciążanie operatorów
  • Interpolacja łańcuchów znaków
  • Bezpieczna nawigacja i operator Elvisa
  • Rozwój języków dziedzinowych (DSL)
  • Możliwości metaprogramowania
  • Zestaw narzędzi programistycznych Groovy (GDK)

Konfiguracja środowiska programistycznego

  • Instalowanie i konfigurowanie Groovy
  • Praca z dystrybucjami Groovy
  • Korzystanie z Groovy w linii komend
  • Uruchamianie skryptów Groovy
  • Konfiguracja środowiska IDE
  • Tworzenie projektu Groovy
  • Zarządzanie zależnościami
  • Integracja Groovy z projektami Java
  • Konfiguracja środowiska programistycznego dla kontenerów

Napisanie pierwszej aplikacji w Groovy

  • Tworzenie podstawowego skryptu Groovy
  • Zrozumienie struktury skryptów Groovy
  • Uruchamianie aplikacji Groovy
  • Korzystanie z instrukcji println
  • Praca z zmiennymi
  • Definiowanie metod
  • Dodawanie komentarzy i dokumentacji
  • Tworzenie prostych aplikacji przykładowych
  • Kompilowanie kodu Groovy

Zapoznanie się ze składnią Groovy

  • Instrukcje i wyrażenia w Groovy
  • Średniki i opcjonalne elementy składni
  • Zmienne i stałe
  • Typowanie dynamiczne i jawne
  • Literale łańcuchów znaków i interpolacja
  • Łańcuchy znaków jedno- i wieloliniowe
  • Operatory i wyrażenia
  • Operatory Groovy i skróty składniowe
  • Obsługa wartości null
  • Bezpieczna nawigacja
  • Operator Elvisa
  • Przypisanie wielu wartości (dekompozycja)

Korzystanie z typów danych i kolekcji Groovy

  • Typy podstawowe i typy obiektowe
  • Liczby i operacje liczbowe
  • Łańcuchy znaków i znaki
  • Typy boolowskie
  • Datow i wartości związane z czasem
  • Listy
  • Mapy
  • Zbiory
  • Zakresy (Ranges)
  • Iteracja przez kolekcje
  • Transformacje kolekcji
  • Filtrowanie i przeszukiwanie kolekcji
  • Sortowanie i grupowanie danych
  • Metody kolekcji w Groovy

Korzystanie z zamknięć (closures) w Groovy

  • Rozumienie zamknięć (closures)
  • Składnia zamknięć
  • Parametry zamknięć
  • Implikowane parametry zamknięć
  • Wywoływanie zamknięć
  • Zamknięcia jako zmienne
  • Przemykanie zamknięć jako argumentów metod
  • Zwracanie zamknięć z metod
  • Zamknięcia i kolekcje
  • Korzystanie z zamknięć do filtrowania i transformacji
  • Zakres i przechwytywanie zmiennych
  • Zamknięcia w programowaniu funkcyjnym
  • Wzorce praktyczne stosowania zamknięć

Kontrolowanie przebiegu programu za pomocą struktur kontrolnych Groovy

  • Instrukcje warunkowe
  • if i else
  • Zagnieżdżone warunki
  • Instrukcje switch
  • Pętle i iteracja
  • for, while oraz do-while
  • Zakresy (Ranges) w pętlach
  • Korzystanie z zamknięć do iteracji
  • break i continue
  • Obsługa wyjątków
  • try, catch oraz finally
  • Rzucanie niestandardowych wyjątków
  • Szczególności kontrolowania przepływu w Groovy

Implementacja programowania obiektowego (OOP) w aplikacji

  • Definiowanie klas Groovy
  • Właściwości i pola
  • Konstruktory
  • Metody
  • Inkapsulacja
  • Dziedziczenie
  • Interfejsy
  • Klasy abstrakcyjne
  • Polimorfizm
  • Nadpisywanie metod
  • Przeciążanie metod
  • Gety i setery w Groovy
  • Cechy (Traits)
  • Wyliczenia (Enums)
  • Tworzenie modeli domenowych dla aplikacji przykładowej

Metaprogramowanie w czasie wykonania i w czasie kompilacji

  • Wprowadzenie do metaprogramowania w Groovy
  • Dynamiczne wywoływanie metod
  • Obiekty typu Expando
  • Manipulacja metodami i właściwościami w czasie wykonania
  • Kategorie i rozszerzenia
  • MetaClass
  • Dynamiczne dodawanie metod
  • Przechwytywanie wywołań metod
  • Transformacje w czasie kompilacji
  • Powszechne transformacje AST
  • Przemyślany stosunek do metaprogramowania
  • Praktyczne przykłady metaprogramowania

Praca z wzorcem Builder (Budowniczy)

  • Wprowadzenie do wzorca budowniczy (Builder pattern)
  • Budowniczowie w Groovy i ich przeznaczenie
  • Tworzenie struktur hierarchicznych
  • Budowniczowie XML
  • Budowniczowie JSON
  • Generowanie HTML i znaczników
  • Konfigurowanie wyjścia budowniczych
  • Używanie zamknięć z budowniczymi
  • Tworzenie niestandardowych budowniczych
  • Zastosowanie budowniczych w językach dziedzinowych (DSL)

Dostęp do bazy danych w Groovy

  • Pojęcia dotyczące łączności z bazami danych
  • Łączenie aplikacji Groovy z bazami danych
  • JDBC i interfejsy API baz danych w Groovy
  • Konfigurowanie połączeń z bazą danych
  • Wykonywanie zapytań SQL
  • Odczyt wyników zapytań
  • Wstawianie, aktualizowanie i usuwanie danych
  • Zapytania parametryzowane
  • Transakcje
  • Obsługa wyjątków bazy danych
  • Korzystanie z Groovy SQL
  • Budowanie funkcji bazodanowych w aplikacji przykładowej

Wywoływanie kodu Java z Groovy

  • Interoperowalność Groovy i Java
  • Korzystanie z klas Java w Groovy
  • Wywoływanie metod Java
  • Praca z bibliotekami Java
  • Korzystanie z kolekcji Java
  • Obsługa wyjątków Java
  • Porównanie składni Groovy i Java
  • Wywoływanie kodu Groovy z Java
  • Mieszanie plików źródłowych Groovy i Java
  • Integrowanie Groovy w istniejących aplikacjach Java
  • Best practice interoperowalności

Łączenie z usługami i aplikacjami REST

  • Wprowadzenie do interfejsów API REST
  • Pojęcia HTTP dla aplikacji Groovy
  • Wysyłanie żądań HTTP
  • Obsługa operacji GET, POST, PUT i DELETE
  • Praca z parametrami i nagłówkami żądań
  • Przetwarzanie odpowiedzi JSON
  • Tworzenie ciał żądań JSON
  • Obsługa uwierzytelniania
  • Zarządzanie błędami HTTP
  • Konsumpcja zewnętrznych usług REST
  • Integracja funkcji REST w aplikacji przykładowej

Korzystanie z zestawu narzędzi GDK

  • Wprowadzenie do zestawu narzędzi programistycznych Groovy (GDK)
  • Rozszerzone interfejsy API Java
  • Praca z łańcuchami znaków
  • Rozszerzone kolekcje
  • Operacje na plikach i katalogach
  • Odczyt i zapis plików
  • Praca z strumieniami
  • Przetwarzanie XML
  • Przetwarzanie JSON
  • Praca z datami i czasem
  • Metody pomocnicze i wygodne interfejsy API
  • Dobieranie odpowiednich funkcjonalności GDK

Testowanie jednostkowe aplikacji Groovy

  • Wprowadzenie do testowania aplikacji Groovy
  • Koncepcje rozwoju napędzanego testami (TDD)
  • Piszenie testów jednostkowych
  • Korzystanie z frameworków testowych
  • Struktura klas testowych
  • Aserty (assertions)
  • Testowanie klas i metod
  • Testowanie zamknięć
  • Testowanie wyjątków
  • Mockowanie zależności
  • Testowanie oparte na danych
  • Testowanie funkcjonalności związanych z bazą danych
  • Testowanie integracji REST
  • Uruchamianie i analiza wyników testów

Rozwiązywanie problemów (Troubleshooting)

  • Diagnozowanie błędów składni Groovy
  • Debugowanie błędów w czasie wykonania
  • Rozwiązywanie problemów kompilacyjnych
  • Rozwiązywanie problemów z interoperowalnością z Javą
  • Debugowanie zamknięć i operacji na kolekcjach
  • Rozpoznawanie problemów z łącznością z bazą danych
  • Rozwiązywanie problemów z integracjami API REST
  • Debugowanie zachowań metaprogramowania
  • Korzystanie z logowania i narzędzi diagnostycznych
  • Praktyczne ćwiczenia z rozwiązywania problemów

Podsumowanie i zakończenie

  • Podsumowanie podstaw języka Groovy
  • Podsumowanie składni, typów i kolekcji
  • Podsumowanie zamknięć i programowania funkcyjnego
  • Podsumowanie programowania obiektowego
  • Podsumowanie metaprogramowania i wzorca budowniczy
  • Podsumowanie integracji z bazami danych i REST
  • Podsumowanie interoperowalności Groovy i Java
  • Podsumowanie możliwości GDK
  • Podsumowanie praktyk testowania
  • Best practice w tworzeniu aplikacji Groovy
  • Praktyczne ćwiczenie końcowe
  • Pytania i dyskusja

Wymagania

  • Doświadczenie w programowaniu w dowolnym języku programowania
 21 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (1)

Propozycje terminów

Powiązane Kategorie