Wprowadzenie do wzorców projektowych w Javie
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
- Ogólnie o wzorcach projektowych
- Czym jest wzorzec projektowy
- Zalety stosowania wzorców
- Klasyfikacja wzorców:
- kreacyjne
- strukturalne
- behawioralne
- Dostosowywanie istniejących rozwiązań
- adapter
- radzenie sobie z niekompatybilnym interfejsem
- fasada
- uproszczenie i redukcja interfejsu
- redukcja tzw. białego szumu przy integracji
- Drzewiaste struktury danych
- kompozyt
- proste zebranie wyniku operacji na całym drzewie
- odwiedzający (visitor)
- zebranie wyniku operacji na całym drzewie
- nie wymaga modyfikacji kodu elementów drzewa
- Tworzenie obiektów w ramach hierarchii
- prototyp
- kopiowanie elementów bez konieczności znania ich konkretnego typu
- fabryka
- ekstrakcja logiki tworzenia obiektu do oddzielnego bytu
- Ortogonalne hierarchie obiektów
- most
- redukcja ilości klas niezbędnej do zamodelowania hierarchii (suma zamiast iloczynu)
- budowniczy
- zapobieganie możliwości tworzenia niekompletnych obiektów
- wygodne i elastyczne API
- fabryka abstrakcyjna
- ekstrakcja logiki tworzenia grup obiektów do oddzielnego bytu
- Wielostronna komunikacja
- mediator
- redukcja (z kombinatorycznej do liniowej) ilości możliwych interakcji pomiędzy obiektami
- obserwujący
- całkowite przecięcie bezpośrednich powiązań między obiektami przy w pełni zachowanej komunikacji
- możliwość podejścia reaktywnego (akcje wykonują się tylko wtedy gdy są niezbędne - brak pustych przebiegów)
- Zarządzanie scenariuszami działań
- strategia
- potraktowanie algorytmu jak czarnej skrzynki i możliwość jego podmiany w zależności od zapotrzebowania
- metoda szablonowa
- redukcja ilości kodu w przypadku kilku algorytmów z dużym udziałem części wspólnej
- stan
- prostsze modelowanie systemu zachowującego się znacząco różnie w zależności od warunków wewnętrznych
- Upraszczanie algorytmów - dziel i zwyciężaj
- polecenie
- zamknięcie kilku działań w jednym obiekcie
- możliwość kolejkowania, planowania i cofania zadań
- łańcuch zobowiązań
- specjalizacja obsługi konkretnych żądań w konkretnym miejscu
- elastyczność - obsługujący nie muszą nic o sobie wiedzieć
- interpreter
- łatwość ewaluacji skomplikowanych wyrażeń
- Utrwalanie danych
- memento
- bezpieczne zapisywanie i odtwarzanie stanu obiektu z zachowaniem integralności
- pyłek (flyweight)
- optymalizacja pamięciowa przy przechowywaniu dużej ilości małych obiektów
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!Szkolenie przeznaczone jest dla programistów, chcących zapoznać się z wzorcami projektowymi.
Nie skupiamy się na suchym przejściu przez wzorce - zamiast tego w warunkach warsztatowych pokazujemy jak zastosować je w realnych przypadkach.
Dodatkowym atutem szkolenia jest ukazanie jak wybrane problemy można rozwiązać za pomocą więcej niż jednego wzorca.
Do uczestnictwa w szkoleniu wymagana jest podstawowa znajomość języka Java i biblioteki JUnit.
Prowadzący szkolenie: Marcin Chrost
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.
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.