Kategorie: UML, procesy biznesowe, Zarządzanie projektami, modelowanie, UML, BPMN
Szkolenie wprowadza uczestników w świat wzorców projektowych, zasad tworzenia czytelnego, elastycznego i łatwego w utrzymaniu kodu, a także technik jego refaktoryzacji. W trakcie zajęć omawiane są najważniejsze wzorce kreacyjne, strukturalne i czynnościowe oraz sposoby ich praktycznego zastosowania. Uczestnicy poznają również typowe błędy projektowe (antywzorce) i dowiedzą się, jak skutecznie poprawiać istniejący kod poprzez refaktoryzację z wykorzystaniem wzorców. Szkolenie łączy teorię z praktyką, umożliwiając natychmiastowe przećwiczenie zdobytej wiedzy w zadaniach programistycznych.
Czas trwania
3 dni
Program
- Wprowadzenie do projektowania z wykorzystaniem wzorców
- Omówienie zasady pojedynczej odpowiedzialności
- Zasada otwarte-zamknięte – tworzenie kodu łatwego do rozbudowy, ale odpornego na modyfikacje.
- Podstawienie podtypów – jak zapewnić zgodność typów przy dziedziczeniu
- Odwrócenie zależności – wprowadzenie do iniekcji zależności i luźnego powiązania komponentów.
- Segregacja interfejsów – projektowanie interfejsów dostosowanych do konkretnych potrzeb klas.
- Wzorce tworzenia obiektów (kreacyjne)
- Builder (budowniczy) – tworzenie złożonych obiektów krok po kroku.
- Abstract Factory (fabryka abstrakcyjna) – rodziny powiązanych obiektów bez ujawniania klas.
- Factory Method (metoda wytwórcza) – delegowanie tworzenia obiektów do podklas.
- Prototype (prototyp) – kopiowanie istniejących instancji zamiast tworzenia od zera.
- Singleton (singleton) – zapewnienie istnienia tylko jednej instancji klasy w aplikacji.
- Wzorce organizacji struktury kodu (strukturalne)
- Adapter – przekształcanie interfejsu klasy do oczekiwanej postaci.
- Dekorator – dynamiczne rozszerzanie funkcjonalności obiektów.
- Fasada – uproszczenie dostępu do złożonego systemu klas.
- Kompozyt – traktowanie grupy obiektów tak samo jak pojedynczych elementów.
- Most – oddzielenie abstrakcji od implementacji.
- Pełnomocnik (Proxy) – zastępowanie rzeczywistych obiektów ich reprezentacją.
- Pyłek (Flyweight) – współdzielenie danych pomiędzy wieloma obiektami dla oszczędności zasobów.
- Wzorce zachowań (czynnościowe)
- Interpreter – analiza i przetwarzanie języka zgodnie z regułami gramatycznymi.
- Iterator – sekwencyjny dostęp do elementów kolekcji bez ujawniania jej struktury.
- Łańcuch zobowiązań – przekazywanie żądania przez łańcuch obiektów aż zostanie obsłużone.
- Mediator – centralizacja komunikacji między komponentami.
- Metoda szablonowa – definiowanie szkieletu algorytmu w klasie bazowej.
- Obserwator – powiadamianie zainteresowanych obiektów o zmianach stanu.
- Odwiedzający (Visitor) – separacja operacji od struktury danych.
- Pamiątka (Memento) – zapisywanie i przywracanie stanu obiektów.
- Polecenie (Command) – enkapsulacja żądań jako obiektów.
- Stan (State) – zmiana zachowania obiektu w zależności od jego stanu wewnętrznego.
- Strategia – wybieranie algorytmu w czasie działania programu.
- RAII (Resource Acquisition Is Initialization) – zarządzanie zasobami poprzez inicjalizację obiektów.
- Błędy projektowe – antywzorce
- Przegląd typowych problemów projektowych i niezalecanych praktyk w tworzeniu oprogramowania.
- Refaktoryzacja z wykorzystaniem wzorców projektowych
- Wprowadzenie do procesu poprawy struktury kodu bez zmiany jego funkcjonalności.
- Praktyczne przykłady refaktoryzacji:
- Zmiana nazw zmiennych, metod i klas dla poprawy czytelności,
- Wydzielanie metod i zmiennych dla lepszej organizacji,
- Lepsze odzwierciedlenie logiki algorytmu w kodzie,
- Planowanie i wdrażanie wzorców projektowych w już istniejącym kodzie.
Dla grup na zamówienie, szkolenie możemy realizować w odniesieniu do różnych języków programowania, np. Java, C#, C++, Python.
Training also available in English.
Przeznaczenie i wymagania
Zajęcia skierowane są do programistów na poziomie mid / senior, developerów, którzy chcą podnieść jakość swojego kodu i lepiej projektować systemy. Zapraszamy również osoby przygotowujące się do roli architekta oprogramowania lub zainteresowane pogłębieniem wiedzy o dobrych praktykach programistycznych.
Mile widziana podstawowa znajomość programowania obiektowego (OOP); umiejętność pracy w jednym z popularnych języków programowania (np. Java, C#, C++, Python); znajomość takich pojęć jak klasy, dziedziczenie, polimorfizm.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.