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
Reference (5)
Interaktivní a praktické cvičení.
Balavignesh Elumalai - Scottish Power
Kurz - SonarQube for DevOps
Přeloženo strojem
Instruktor má hluboké zkušenosti a je velmi pestrý v podání. Hloubka znalostí a vášeň pro výuku jsou velmi oceňovány.
Anup Kumar - SMR Automotive Mirrors Stuttgart
Kurz - Jenkins 2: Building CI/CD Pipelines
Přeloženo strojem
Instruktor byl velmi dobře organizovaný. Na začátku vysvětlil všechny nástroje potřebné pro školení. Instruktor ochotně objasnil všechna pochybení a probírala se praktická použití.
Vivek Verma - Global Knowledge Network Training Ltd
Kurz - DevOps Practical Implementation and Tools
Přeloženo strojem
Velmi podrobné, odborník zná předmět velmi dobře a zpracoval mnoho témat
Gabriel Kelly Navarro - Opswerks
Kurz - Advanced Spinnaker
Přeloženo strojem
Luke was very knowledgeable, patient, and very open to satisfy my curiosity, for example I asked him to generate errors to see how system will response, etc. He would go above and beyond to answer questions or demonstrate the functionalities, even some of my questions were out of the class scope. He gave me a real experience with the system. I definitely will take another class with him and recommend him as a teacher for others. Thank you Luke!.
Tina Henderson
Kurz - Test Automation with Selenium and Jenkins
Přeloženo strojem