Java dla zaawansowanych

Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
-
Enumeracje to więcej niż wyliczenia
- W enumeracjach mogą być metody
- A nawet konstruktory
- I oczywiście atrybuty
- Do tego jest też API
-
Tworzenie adnotacji nie jest proste
- Użycie może tak, ale jest więcej
- Introspekcją można je przeglądać
- Można tworzyć własne adnotacje
- Są już wielokrotne, czego brakowało wcześniej
- Są też na pakietach
- Mamy Interfejs AnnotatedElement
- Jako bonus wspomnimy o javax.annotation.processing
-
Java to też dynamiczne wywołania
- Dynamiczne tworzenie obiektów
- Refleksja i nowsze Invokedynamic
- Dynamiczne proxy dla interfejsów
- Na koniec wzmianka o module jdk.dynalink i agentach
-
Typy generyczne potrafią wyglądać jak hieroglify
- Użycie klas generycznych jest proste
- Trudniejsze już jest tworzenie typów i metod generycznych
- Jeszcze ciekawiej robi się też przy generykach i dziedziczeniu
- A kto opanował znaczniki (wildcards): ?, extends i super
- Dorzućmy do tego znaczniki wielokrotne
- I bez porad użycia znaczników się nie obejdzie
- Warto znać konwencje nazewnictwa
- Wiedzieć kiedy przyda się @SupressWarning("unchecked")
- I na czym polega zacieranie typów (type erasure)
- Podsumujemy porady tworzenia generyków
- Poznamy problem metod generycznych z varargs (@SafeVarargs)
- Zobaczymy, jak się mają typy generyczne do tablic
- Czy jak wyglądają rekursywne typy generyczne
- Na koniec omówimy ograniczenia generyczności
- I ciekawe przypadki (wzorce)
-
Programowanie funkcyjne - składnia, strumienie i API
- Poznamy tworzenie interfejsów funkcyjnych
- Wzbogacimy je dzięki metodom prywatnym, statycznym i domyślnym
- Rozbijemy wyrażenia lambda na składnię, użycie, wskazówki
- Opanujemy referencje do metod czy konstruktorów
- A także złączanie metod
- Zastosujemy forEach przy Iterable i Map
- Przeglądniemy API wybranych interfejsów funkcyjnych
- Poznamy strumienie dla plików, tablic, kolekcji czy adhoc
- I popracujemy na nich: filtrując, redukując, przekształcając
- Z zakończeniem agregującym lub nie
- Dodatkowo będą strumienie typów prostych i StreamSupport
- Oraz porady: kiedy strumienie i jak tworzyć je czytelnie
- Dowiemy się, że strumienie są też współbieżne
- Dokładniej przypatrzymy się: Optional, Collectors
- I rozglądniemy, gdzie jeszcze można znaleźć API funkcyjne
-
Moduły, czyli porządek, ale pewnym kosztem...
- Bo public był zbyt publiczny
- Więc co dadzą moduły?
- Czym są moduły nienazwane i automatyczne
- Jaka jest struktura i nazewnictwo modułów
- Po co deskryptor modułu
- Zwykły dostęp do zawartości modułu i dla refleksji
- Nauczysz się także określać moduły wymagane
- Udostępniać i otwierać pakiety
- Dotkniemy też usług na poziomie dostarczania, używania i dystrybucji
- Zgłębimy moduły z perspektywy ServiceLoader'a
- Dokonamy ich kompilacji, pakowania (modular JAR) i uruchomienia
- Zwrócimy uwagę na JAR modułu dla wielu wersji Java (multi-release)
- Poznamy jlink, moduł aplikacji i upgradeable modules
- Zgłębimy opcje Java dla modułów oraz hakowania modułów
- Wspomnimy o narzędziach, warstwach modułów i migracji
- Zobaczymy analizę zależności dostarczoną przez jdeps
- Przebrniemy przez problemy migracji do modułów i ich testowania
- Ułatwimy sobie życie dzięki plikom atrybutów
- A na koniec wspomnimy o jmod
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu w skrócie
Celem szkolenia jest zapoznanie zaawansowanych programistów Java z niezwykłymi, choć złożonymi elementami języka, oraz wytwarzanie często używanych, jednak rzadziej samodzielnie kodowanych bytów.
Przećwiczymy moduły, zaawansowane enumeracje, własne adnotacje, złożone generyki, dynamiczne wywołania i nachylimy się mocniej nad programowaniem funkcyjnym. Nie ma co ukrywać - tutaj składnia i API Javy są bardzo złożone, czasem wręcz dynamiczne.
To szkolenie to solidna porcja bardzo zaawansowanej Javy nie tylko dla geeków, ale dla wszystkich chętnych na wytwarzanie czytelnych i bardzo elastycznych rozwiązań.
Zdobyta tu wiedza i umiejętności stanowić będą bazę do tworzenia własnych frameworków, dobrych w utrzymaniu, rozszerzalnych rozwiązań. Nieważne w jakich technologiach działasz - szkolenie otwiera przed Tobą niesamowite obszary samej Javy, dzięki czemu możesz stosować poznane rozwiązania w dowolnych systemach tworzonych w tym języku.
Prowadzący szkolenie:
Michał Podbielski
Programista Java od 2004 roku, doświadczony w wielkich międzynarodowych projektach. Architekt oprogramowania i konsultant w zakresie architektury oprogramowania,
UML i BPMN rozwiązujący problemy klientów w złożonych i zróżnicowanych projektach. Przeprowadził w sumie ponad 390 szkoleń ze świetnymi wynikami w ankietach.
Prowadzi szkolenia z języka Java, architektury oprogramowania, UML i BPMN.
Stanowisko robocze

Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia

Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Java










Programista i projektant z 13-letnim doświadczeniem, specjalizujący się w Javie i full-stack development. Pracował nad dużymi projektami korporacyjnymi w sektorach fintech oraz insurtech, zdobywając bogate doświadczenie w tworzeniu systemów rozproszonych oraz integracji opartej o API i zdarzenia.
Jako specjalista w dziedzinie Java i architektury oprogramowania, zajmował się również strategicznym rozwojem kompetencji technicznych w organizacji, będąc aktywnym rekruterem technicznym, trenerem oraz mentorem. Pasjonat współpracy z ekspertami domenowymi i klientami, z zamiłowaniem do prostoty i czytelności, z zainteresowaniem Domain Driven Design (DDD) oraz innymi podejściami inżynierii oprogramowania zorientowanymi na domenę biznesową.


Jestem programistą z ponad 15-letnim doświadczeniem. W trakcie swojej kariery kilka razy zmieniałem obszary, z którymi miałem do czynienia (poczynając od niskopoziomowego programowania w C, poprzez fullstackowe zabawy w RubyOnRails, aż do prawdziwego backendu w Javie). Odkąd pamiętam, zawsze lubiłem dzielić się wiedzą z innymi i sprawiało to satysfakcję obu stronom tego procesu. Dlatego naturalną konsekwencją było to, iż zostałem kilka lat temu profesjonalnym trenerem IT.
Prowadzenie szkoleń pozwala mi również na każdorazowe powtórzenie i ugruntowanie swojej wiedzy, co potem bardzo przydaje się w pracy projektowej. Natomiast to, co daje mi największe zadowolenie jako trenerowi, to sytuacja gdy uczeń przerośnie mistrza - wtedy wiem, że dałem z siebie wszystko, a moja praca przyniosła owoce.

