Wzorce projektowe i refaktoryzacja w języku Java
LICZBA DNI: 4 (32h)
KOD KURSU: REFAKT/JAV
Weź udział w szkoleniu
Termin
Lokalizacja
Cena / os
24
maja
Warszawa,
Termin
24
maja
Lokalizacja
Warszawa,
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Programiści Java, chcący poznać wzorce projektowe i prawidłowo stosować je przy refaktoryzacji oraz tworzeniu nowych rozwiązań
WYMAGANIA
Umiejętność programowania w języku Java
ZALETY
Poprawne techniki refaktoryzacji do wzorców z użyciem narzędzi na gotowym i generowanym kodzie
Połączenie siły IDE z narzędziem do modelowania UML
Cele szkolenia
Zdobycie umiejętności poprawnego stosowania wzorców projektowych począwszy od właściwej identyfikacji wymaganego wzorca, poprzez adaptację do specyfiki problemu (podstawy projektowania w UML), a na kodowaniu rozwiązania kończąc
Wykrywanie złych rozwiązań i ich refaktoryzacja z użyciem poznanych wzorców
Duży nacisk na poprawne stosowanie wzorców (przedstawiane są podstawy projektowania, mimo że grupą docelową są programiści)
Wprowadzanie przemyślanych rozwiązań, oraz generowanie dla nich kodu na podstawie diagramów klas
Program
Niezbędnik UML dla wzorców
- Wprowadzenie do UML
- Diagram klas
- Diagram sekwencji
- Modelowanie w omówionych diagramach
Wprowadzenie do wzorców i podstawy projektowania obiektowego
- Enkapsulacja
- High Cohension
- Loose Coupling
- Command-Query Separation
- Problemy z dziedziczeniem w Javie
- Wprowadzenie do wzorców
- Różne rodzaje wzorców
- GRASP (General Responsibility Assignment Software Patterns)
- S.O.L.I.D (SOLID-ne programowanie)
Wzorce GOF
- Konstrukcyjne: Abstract Factory, Builder, Factory Method, Prototype, Singleton
- Strukturalne: Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy
- Behawioralne: Chain of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Przegląd wybranych antywzorców
- Busy Waiting
- Circular Dependency
- Golden Hammer
- Hardcoding
- Lava Flow
- Object Orgy
- Spaghetti Code
- The Blob (God Object)
Refaktoryzacja do wzorców
- Czym jest refaktoryzacja
- Kiedy warto refaktoryzować? (code smells)
- Wybrane symptomy złego kodu: Contrivied Complexity, Cyclomatic complexity, Duplicated code
- Excessive return of dataFeature envy, Excessive use of literals
- Excessively long identifiers, Excessively short identifiers
- Inappropriate intimacy, Large class, Large method, Lazy class
- Orphan variable or constant class, Refused bequest, Too many parameters
- Refaktoryzacja a testy jednostkowe
- Wsparcie narzędzi przy refaktoryzacji
- Techniki refaktoryzacji z użyciem wzorców
- Compose Method, Chain Constructors, Encapsulate Classes with Factory
- Encapsulate Composite With Builder, Extract Adapter, Extract Composite
- Extract Parameter, Form Template Method, Inline Singleton
- Introduce Null Object, Introduce Polymorphic Creation With Factory Method
- Limit Instantiation with Singleton, Move Accumulation to Collecting Parameter
- Move Accumulation to Visitor, Move Creation Knowledge to Factory
- Move Embellishment to Deorator, Replace Conditional Dispatcher with Command
- Replace Conditional Logic with Strategy, Replace Constructors with Creation Methods
- Replace Hard-Coded Notifications with Observer, Replace Implicit Tree with Composite
- Replace One/Many Distinctions with Composite
- Replace State-Altering Conditionals with State, Replace Type Code with Class
- Unify Interfaces, Unify Interfaces with Adapter
Podstawy dynamicznego wołania metod (opcjonalne)
- Tworzenie obiektów na podstawie nazwy klasy
- Refleksja
- Invokedynamic
- Dynamiczne proxy
