Wzorce projektowe i refaktoryzacja w języku Java

LICZBA DNI: 4 (32h)

KOD KURSU: REFAKT/JAV

Powiadom
o kolejnych terminach

# java

Autor szkolenia:
Michał Podbielski

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

  • Wprowadzenie do UML
  • Diagram klas
  • Diagram sekwencji
  • Modelowanie w omówionych diagramach
  • 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)
  • 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
  • Busy Waiting
  • Circular Dependency
  • Golden Hammer
  • Hardcoding
  • Lava Flow
  • Object Orgy
  • Spaghetti Code
  • The Blob (God Object)
  • 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 Knowdlego 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
  • Tworzenie obiektów na podstawie nazwy klasy
  • Refleksja
  • Invokedynamic
  • Dynamiczne proxy

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.