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
Grupa docelowa: developerzy

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

Pobierz program w formacie PDF
  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
          Dziedziczenie nie nadaje się do modelowania rólLiskov Substitution PrincipleWzorzec PartyWzorzec 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
          Jak ją osiągnąćJak wykrywać zapachy kodu
      2. Otwartość na rozbudowę
          Wzorzec Strategii3 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
          Technika podmiot.orzecznie(dopełnienie, przydawka)Technika modelowania niezmiennikówTechnika 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
          CapacityOperationsPolicy - dostrajanie modeluDecission Support
  4. Wzorce architektury systemowej
    1. Dostęp do danych
      1. DAO
      2. Repository
      3. ORM - zakres stosowalności
          Pułapki Lazy Loading - wykrywanie i naprawaBlokowanie optymistyczneUni 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
          Wsparcie dla testabilityPraktyczne techniki wykorzystania w celu osiągnięcia giętkości designu
      2. Systemy sterowane zdarzeniami
          Architektura pluginowaSeparacja modułówZwiększanie responsywności systemuSkalowanieWybrane przykłady z wykorzystaniem ACE, Boost oraz Qt
      3. Wybrane architektury aplikacji
          Klasyczna n-warstwowa architektura (odmiany)Uproszczone architekturyCommand-query Responsibility SegregationArchitektura wspierająca Domain Driven DesignUltra-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

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ń