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

Tytuł: 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: developerzy, architekci
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
          1. Scoped Proxy
          2. Wstrzykiwanie krócej żyjących komponentów do dłużej żyjących
          3. 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.

  • Co każdy programista Java powinien wiedzieć o JVM: Część I
    KATEGORIE: Java i JVM

    Artykuł jest pierwszym krokiem do wnętrza "czarnego pudełka" - JVM.

    Autor Bottega:

    Jakub Kubryński

    Powiązane usługi:

    Audyty architektury

  • Co każdy programista Java powinien wiedzieć o JVM: Część II
    KATEGORIE: Java i JVM

    Zarządzanie pamięcią.

    Autor Bottega:

    Jakub Kubryński

    Powiązane usługi:

    Audyty architektury

  • Wydajnośc JPA i Hibernate - Dlaczego u mnie działa tak wolno?
    KATEGORIE: Java i JVM

    Artykuł poświęcony problemom wydajności Hibernate. Materiały (pdf) z prezentacji wygłoszonej na konferencji NYAC 2010.

    Autor Bottega:

    Sławomir Sobótka

    Powiązane usługi:

    Audyty architektury

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ń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.