Návrh Školení

Kontrola kvality/CI

  • Co je kontrola kvality?
  • Co je CI (Continuous Integration)?
  • Náklady na vývoj softwaru, refaktoring a opravy chyb
  • Identifikace a pochopení projektu
  • Výhody pro organizaci

DDD (Domain-Driven Design)

  • Vývoj softwaru na základě podnikových požadavků, předpokladů DDD
  • Problémy v komunikaci IT-Podnik
  • Domenový model

Nejlepší praktiky

  • KISS princip a DRY (Don't Repeat Yourself)
  • Pravidla kódování
  • Vytváření opakovatelného kódu prostřednictvím OOP (Objektově orientované programování) a design patterns
  • Identifikace a snižování cyklické komplexity

Metrice softwaru

  • Váha metody třídy (Weight Method per Class)
  • Odpověď třídy (Response For a Class)
  • Hloubka dědičnosti stromu (Depth of Inheritance Tree)
  • Spojení mezi objekty (Coupling Between Objects)
  • Nedostatek soudržnosti metod (Lack of Cohesion of Methods)
  • Počet potomků (Number of Children)
  • Cyklická komplexita
  • Třídní metriky
  • Metriky modelu
  • Metriky pro použití

Testování softwaru

  • Co, kdy a jak testovat?
  • Metoda "white-box" a "black box"
  • Role testování v agilních metodologiích
  • TDD (Test-Driven Development) pouze potenciální zvýšení nákladů na projekt
  • Jednotkové testy s JUnit (Java), PHPUnit (PHP)
  • Chování testy pomocí JBehave (Java), Behat a Mink (PHP)
  • Funkční testy

Refaktoring

  • Co je refaktoring?
  • Závazek technologie (Technical Debt)
  • Kódové pachy (Code Smells)
  • Refaktorizační vzory

Dokumentace

  • Role dokumentace v agilních metodologiích
  • Co je třeba dokumentovat?
  • Typy dokumentace
  • Dokumentace a agilní metody, nebo můžeme říct (Funkční software nad důkladnou dokumentací)?
  • Standard XMI
  • Automatické generování dokumentace z Javadoc (Java), ApiGen (PHP)

Nástroje a prostředí CI

  • Nástroje a prostředí CI
    • PMD (Java), phpmd (PHP)
    • CPD (Java), phpcpd (PHP)
    • Počítadlo řádků kódu (Lines Of Code Counter) (Java), phploc (PHP)
    • UCDetector (Java), phpdcd (PHP)
    • Jdepend (Java), phpdepend (PHP)
  • Jenkins Continuous Integration Server

Agilní metody a CI/QA

  • Plánování a inkrementální vývoj
  • Přijetí změn
  • Krátké fáze
  • Mezioborový tým
  • Extreme Programming, kódová recenze (Code Review)
  • Lidé a interakce nad procesy a nástroji

Závěr

  • Diskuse
  • Otázky
  • Jak začít s implementací procesu?

Požadavky

Znalost procesů vývoje softwaru

 14 hodiny

Počet účastníků


Cena za účastníka

Reference (5)

Nadcházející kurzy

Související kategorie