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)
Zaujímavé a praxe orientované cvičení.
Balavignesh Elumalai - Scottish Power
Kurz - SonarQube for DevOps
Přeloženo strojem
Trenér má hluboké zkušenosti a dobře vyprávěný skutkem. Hloubka znalostí a vášeň pro výuku je vysoce ceněna.
Anup Kumar - SMR Automotive Mirrors Stuttgart
Kurz - Jenkins 2: Building CI/CD Pipelines
Přeloženo strojem
The trainer was very well organized. He explained about all the tools required for the training in the beginning. The trainer happily clarified all the doubts and practical use cases were discussed.
Vivek Verma - Global Knowledge Network Training Ltd
Kurz - DevOps Practical Implementation and Tools
Very detailed, trainer knows the subject very well and has covered a lot of topics
Gabriel Kelly Navarro - Opswerks
Kurz - Advanced Spinnaker
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!.