Kotlin i Spring Boot - zaawansowane aspekty języka i architektury

Kod: kotlin-KotBoot
Kategoria: Kotlin
Forma: 30% wykłady / 70% warsztaty
Czas trwania: 4 dni
Odbiorcy: architekci, developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

W trakcie szkolenia uczestnik nauczy się używać konstrukcji składniowych Kotlina oraz pozna idiomy i wzorce ich wykorzystania w kontekście tworzenia aplikacji backendowych z wykorzystaniem frameworka Spring. Kotlin jest językiem coraz mocniej zyskującym na popularności, głównie za sprawą wygodnych konstrukcji składniowych i wysunięcia na pierwszy plan paradygmatu programowania funkcyjnego. Cechy te znacznie ułatwiają pisanie dobrego kodu zawierającego mniej błędów.

Znajdując szerokie zastosowanie na różnych platformach, Kotlin staje się językiem uniwersalnym. Jest oficjalnie wspierany przez Google do tworzenia aplikacji androidowych, z powodzeniem stosowany do tworzenia rozwiązań backendowych, webowych (kotlin-js) oraz natywnych, w tym iOS (kotlin-native).

Wyróżniki szkolenia

  • Architektura aplikacji
  • Poprawne wykorzystanie konstrukcji języka, zgodnie z ich przeznaczeniem
  • Elementy Domain-driven Design

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Kotlin (2 dni)
    1. Składnia języka
      1. Podstawy składni i różnice względem Javy
      2. Deklaracje zmiennych i stałych
      3. Typy podstawowe
      4. Kontrola przepływu
      5. Zwracanie wartości funkcji/lambdy i skoki
      6. Null-safety na poziomie systemu typów
      7. Równość obiektów w Kotlinie
      8. Obsługa wyjątków
    2. Konstrukcje języka do programowania obiektowego
      1. Interface, Class & Object (Singleton)
      2. Companion Objects
      3. Konstruktory i atrybuty
      4. Enkapsulacja (modyfikatory dostępu)
      5. Data Classes i niemodyfikowalny stan
      6. Sealed Classes jako narzędzie do modelowania stanu
      7. Rozszerzanie możliwości klas przez extension functions
      8. Delegacja na poziomie klasy jako alternatywa do dziedziczenia
      9. Delegowane atrybuty
        1. Lazy
        2. Observable
        3. Implementacja własnych delegatów
      10. Aliasy typów
      11. Nadpisywanie operatorów
    3. Biblioteka standardowa
      1. Zakresy
      2. Tablice i kolekcje
      3. Przydatne rozszerzenia do biblioteki standardowej Javy
    4. Programowanie funkcyjne
      1. Założenia paradygmatu funkcyjnego
      2. Funkcje w Kotlinie
        1. Parametry domyślne
        2. Nazwane argumenty
        3. Deklaracja typów zwracanych
        4. Notacja infiksowa
        5. Funkcje wyższego rzędu
        6. Wyrażenia lambda
    5. Optymalizacja funkcji wyższego rzędu przez inlinowanie wykonania
      1. Funkcyjne przetwarzanie kolekcji
      2. Programowanie bez zmiennych - funkcje let/use/with/apply
    6. Programowanie współbieżne z wykorzystaniem Coroutines
    7. Generyczne klasy i funkcje
      1. Składnia i różnice względem Javy
      2. Zapobieganie wymazywaniu typów dzięki reifikowanym typom generycznym
    8. Współpraca Kotlina z Javą
    9. Kotlin i jego wpływ na performance aplikacji
      1. Porównanie bytecode'u Javy i Kotlina dla podstawowych konstrukcji języka
  2. SpringBoot (2 dni)
    1. Paradygmat Inversion of Control - wsparcie frameworka
      1. Dependency Injection
        1. Wykorzystanie do zmniejszenia poziomu zależności
      2. Zdarzenia
        1. Zdarzeniowe architektury otwarte na rozbudowę
        2. Praktyczne przykłady generowania zdarzeń biznesowych z warstwy logiki
      3. Techniki Aspect Oriented Programming
        1. Podstawy teoretyczne
        2. Praktyczne przykłady wykorzystania w aplikacjach biznesowych
        3. Zastosowanie w Spring
    2. Kontener wstrzykiwania zależności
      1. Konfiguracja
      2. Komponenty
        1. Deklaracja
        2. Cykl życia
        3. Zależności
        4. Zasięg komponentów
        5. Scoped Proxy
        6. Wstrzykiwanie krócej żyjących komponentów do dłużej żyjących
        7. Pre/post procesory
    3. MVC
      1. Wzorzec Model View Controller w kontekście Springa
      2. Kontrolery
        1. Mapowania restowe
        2. Obsługa parametrów
        3. Obsługa różnych typów zawartości (JSON, etc.) inegocjowanie
      3. Model
        1. Mapowanie modelu
        2. Walidacja
      4. Praca z widokiem i view resolvery
      5. Obsługa wyjątków
      6. Obsługa wywołań asynchronicznych
    4. Dostęp do danych
      1. Transakcje (konfiguracja, poziomy izolacji, warstwa abstrakcji Spring)
      2. Integracja z JPA/Hibernate - podstawy
      3. Spring Data - automatyzacja d ostępu do danych
    5. Testowanie
      1. Spring - wsparcie dla testów
      2. Testowanie jednostkowe
      3. Testowanie integracyjne ze wsparciem kontenera
      4. Slice testing
      5. Testy E2E i wykonywalne specyfikacje
    6. Techniki umożliwiające implementację logiki biznesowej w oderwaniu od frameworka
      1. Podstawy DDD
      2. Podstawy architektury Ports & Adapters
    7. SpringBoot i Kotlin - pułapki i dobre praktyki


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Wyrażam zgodę na przetwarzania danych osobowych zgodnie z ustawą o ochronie danych osobowych w związku z wysłaniem zapytania przez formularz kontaktowy.

Podanie danych jest dobrowolne ale niezbędne do przetworzenia zapytania. Zastałem/am poinformowany/na, że przysługuje mi prawo dostępu do swoich danych, możliwości ich poprawienia, żądania zaprzestania ich przetwarzania.

Administratorem danych osobowych jest Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin.


Klauzula informacyjna