Craftsmanship - przybornik profesjonalisty: najlepsze techniki developerskie i architektoniczne z wykorzystaniem ACE, Boost oraz Qt

Kod: CCPP-craft-C++ Craft
Kategoria: Craftsmanship dla programistów C i C ++
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Grupa docelowa: developerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Szkolenie stanowi syntezę kluczowych elementów klasycznej i nowoczesnej inżynierii oprogramowania.

Daje ogólny pogląd na praktyczne aspekty wykorzystania omawianych technik w projektach. 

Omawiane zagadnienia leżą u podstaw nowoczesnych frameworków i technologii (takich jak Qt, Boost czy ACE) – co zwiększa poziom ich zrozumienia i pozwala na świadome korzystanie.

Profesjonalista w naszym ujęciu:

  • doskonale włada technikami developerskimi i stylami architektonicznymi,
  • potrafi porozumieć się z biznesem przy pomocy technik DDD,
  • dobiera właściwe narzędzie do klasy problemu
  • dostarcza kod wysokiej jakości.
Szkolenie przeznaczone dla programistów i projektantów pragnących poszerzyć swe kompetencje w zakresie profesjonalnych technik zwiększających jakość kodu i projektu. Zdobyta wiedza przekłada się w praktyczny sposób na produktywność mierzoną w szerszej perspektywie czasu.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Sprawdzone techniki SOLID, GRASP i DDD
  • Osadzenie technik w architekturze aplikacji i systemu
  • Całość w kontekście testowania automatycznego
  • Realne przykłady z wykorzystaniem Qt, Boost czy ACE

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Techniki Object Oriented
    1. Ukierunkowanie myślenia w stylu OO
    2. Code smell
    3. Pułapki dziedziczenia
      1. Zamknięcie kodu na rozbudowę
      2. Zastępowania dziedziczenia kompozycją – praktyczne zalety zmiany podejścia
        1. Dziedziczenie nie nadaje się do modelowania ról
        2. Liskov Substitution Principle
        3. Wzorzec Party
        4. Wzorzec Role Object i Extension Object
    4. Efektywne wykorzystanie Object Oriented
      1. GRASP
      2. SOLID
      3. RDD
    5. GRASP - General Responsibility Assignment Software Patterns
    6. Praktyczne wykorzystanie SOLID
      1. Kohezja klas
        1. Jak ją osiągnąć
        2. Jak wykrywać zapachy kodu
      2. Otwartość na rozbudowę
        1. Wzorzec Strategii
        2. 3 rodzaje logiki: stabilna, domknięcia, wybór domknięć
      3. Kiedy dziedziczenie nie ma sensu
      4. Zakres interfejsów
      5. Odpowiedni poziom abstrakcji
      6. Dążenie do kodu o czytelności zbliżonej do prozy
        1. Technika podmiot.orzecznie(dopełnienie, przydawka)
        2. Technika modelowania niezmienników
        3. Technika określania granicy klasy na podstawie analizy Use Case
    7. Responsibility Driven Design
  2. Clean Code
    1. Wykrywanie Code Smells
    2. Wybrane Wzorce implementacyjne i projektowe
  3. Techniki porządkowania logiki i wzorce architektury aplikacyjnej
    1. Podział na logikę aplikacji i logikę domenową
    2. Logika aplikacji
      1. Modelowanie Use Case/User Story
      2. Stanowo czy bezstanowo
    3. Logika domenowa
      1. Techniki DDD - Building Blocks
      2. Poziomy modelu
        1. Capacity
        2. Operations
        3. Policy - dostrajanie modelu
        4. Decission Support
  4. Wzorce architektury systemowej
    1. Dostęp do danych
      1. DAO
      2. Repository
      3. ORM - zakres stosowalności
        1. Pułapki Lazy Loading - wykrywanie i naprawa
        2. Blokowanie optymistyczne
        3. Uni of Work
    2. Porządkowania logiki biznesowej (Servisy, DDD)
    3. Inversion of Control – sprawdzona koncepcja budowy frameworków i systemów
      1. Dependency Injection – podstawa współczesnych frameworków
        1. Wsparcie dla testability
        2. Praktyczne techniki wykorzystania w celu osiągnięcia giętkości designu
      2. Systemy sterowane zdarzeniami
        1. Architektura pluginowa
        2. Separacja modułów
        3. Zwiększanie responsywności systemu
        4. Skalowanie
        5. Wybrane przykłady z wykorzystaniem ACE, Boost oraz Qt
      3. Wybrane architektury aplikacji
        1. Klasyczna n-warstwowa architektura (odmiany)
        2. Uproszczone architektury
        3. Command-query Responsibility Segregation
        4. Architektura wspierająca Domain Driven Design
        5. Ultra-skalowalne systemy
  5. Testability – projektowanie pod kątem wsparcia dla TDD
    1. Podejście Specify First
    2. Behaviour Driven Development
    3. Projektowanie pod kątem testów z wykorzystaniem technik OO
    4. Techniki redukcji zależności
    5. Wykorzystanie Dependency Inejection
    6. Mapowanie piramidy testów na warstwy aplikacji
    7. Stosowanie Stub i Mock
    8. Redukcja ilości przypadków testowych
      1. Rozwarstwienie logiki
      2. Obikety funkcyjne


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń