Adresaci Szkolenia:

Szkolenie w sposób kompleksowy opisuje refaktoryzację i kontekst, w którym powinna ona być wykorzystywana. Rozpoczyna się ono od dyskusji na temat jakości kodu i metod, za pomocą których jesteśmy w stanie stwierdzić, że kod źródłowy jest niskiej jakości. Następnie, uczestnikom przedstawione są zasady, którymi powinien kierować się programista w swojej pracy, by dążyć do kodu o wysokiej jakości. Główną częścią szkolenia są warsztaty z technik refaktoryzacji (m.in. kompozycja metod, upraszczanie wyrażeń warunkowych) oraz wzorców projektowych w oparciu o zbiór GoF (Gang-of-Four).

Cel szkolenia:

  • być w stanie ocenić jakość kodu źródłowego, z którym pracuje,
  • wskazać w kodzie niedoskonałości, nazwać je i uargumentować, czemu negatywnie wpływają na jakość aplikacji,
  • rozumieć różne techniki refaktoryzacji i potrafić je stosować na niskiej jakości kodzie,
  • rozumieć kontekst, w którym należy użyć danego wzorca projektowego i potrafić go zaimplementować.

Wymagania:

Uczestnik szkolenia powinien posiadać podstawowe doświadczenie w programowaniu obiektowym. Preferowanym językiem jest Java.

Parametry szkolenia:

2*8 godzin (2*7 godzin netto) wykładów i warsztatów w proporcji: 80% warsztaty, dyskusje; 20% wykłady.

Program szkolenia

  1. Wprowadzenie
    1. Definicja wzorca projektowego
    2. Czy wzorce projektowe są odpowiedzią na braki w danym języku programowania?
  2. Jakość kodu i jej ocena
    1. Jak mierzyć jakość kodu źródłowego?
    2. Code Smells
      1. Duplikacja kodu
      2. Metody przyjmujące dużą liczbę parametrów
      3. Długie metody
      4. Ogromne klasy
      5. God Class
      6. Zależność od szczegółów implementacyjnych innej klasy
      7. Stosowanie nazw, które niczego nie opisują
    3. Antywzorce
      1. Cut-and-Paste Programming
      2. Spaghetti Code
      3. Programming to Implementation
      4. Tight coupling
      5. Golden Hammer
      6. Poltergeist
      7. Boat Anchor
      8. Dead End
      9. Ambigious Viewpoint
      10. Lava Flow
      11. Mushroom Management
    4. Poprawianie jakości kodu
      1. (Brakujące) Testy komponentów poddawanych zmianie
      2. Czytelny kod (tzw. Clean Code)
      3. Enkapsulacja
      4. Zasada odpowiedzialności
      5. Kompozycja ponad dziedziczenie
      6. Programowanie poprzez interfejsy
    5. Dług techniczny
  3. Techniki refaktoryzacji
    1. Wprowadzenie
    2. Tworzenie metod
      1. Introduce Explaining Variable
      2. Split Temporary Variable)
      3. Replace Template with Query, Inline Temp, Inline Method i Extract Method
      4. Remove Assignments to Parameters
      5. Substitute Algorithm
    3. Upraszczanie wywołań metod
      1. Replace Constructor with Factory Method, ErrorCode with Exception, Exception with Test, Parameter with Explicit Methods, Parameter with Method,
      2. Introduce Parameter Object
      3. Encapsulate Downcast
    4. Przenoszenie cech między obiektami
      1. Move Method i Move Field
      2. Extract Class
      3. Inline Class
      4. Hide Delegate
      5. Remove Middle Man
      6. Introduce Foreign Method
      7. Introduce Local Extension
    5. Organizacja i modelowanie danych
      1. Replace Array with Object, Data Value with Object, Magic Number with Symbolic Constant, Record with Data Class, Subclass with Fields, Type Code with Class, Type Code with Strategy/State, Type Code with Subclasses
      2. Encapsulate Collection, Encapsulate Field
      3. Change Bidirectional Association to Unidirectional, Unidirectional Association to Bidirectional, Reference to Value, Value to Reference
    6. Upraszczanie wyrażeń warunkowych
      1. Decompose Conditional Expressions, Consolidate Conditional Expressions i Consolidate Duplicate Conditional Expressions
      2. Remove Control Flag
      3. Replace Nested Conditional with Guard Clauses
      4. Replace Conditional with Polymorphism
      5. Null Object
    7. Generalizacje
      1. Pull Up Constructor Body, Field, Method
      2. Push Down Field, Method
      3. Collapse Hierarchy
      4. Extract Interface, Subclass, Superclass
      5. Replace Delegation with Intheritance, Inheritance with Delegation
  4. Wzorce projektowe
    1. Wprowadzenie
    2. Wzorce GoF
      1. Kreacyjne: Builder, Prototype, Factory Method, Abstract Factory, Singleton
      2. Strukturalne: Facade, Proxy, Composite, Adapter, Decorator, Bridge
      3. Behawioralne: Command, Observer, State, Strategy, Chain of Responsibility, Mediator, Visitor, Template Method
    3. Niuanse wykorzystania poszczególnych wzorów
  5. Podsumowanie

Pytania?

* Wymagane.
** Szczegóły promocji w Regulaminie.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email