Struttura del corso
QA/CI
- Cosa è QA?
- Cosa è CI?
- I costi dello sviluppo software, del rifattorizzazione e della correzione degli errori
- L'identificazione e la comprensione del progetto
- Il profitto per l'organizzazione
DDD
- Sviluppo software basato sui requisiti aziendali, assunzioni DDD
- Problemi nella comunicazione IT-Azienda
- Modello di dominio
Migliori Pratiche
- Principio KISS e DRY
- Standard di codifica
- Creazione di codice riutilizzabile attraverso OOP e pattern di design
- Identificazione e riduzione della complessità ciclotomica
Metriche Software
- Peso del metodo per classe
- Risposta di una classe
- Profondità dell'albero di ereditarietà
- Coupling tra oggetti
- Mancanza di coesione dei metodi
- Numero di figli
- Complessità ciclotomica
- Metrica classe
- Metriche del modello
- Metriche per l'uso
Test Software
- Cosa, quando e come testare?
- Il metodo "white-box" e "black box"
- Il ruolo del testing nelle metodologie agili
- TDD e il potenziale aumento dei costi del progetto
- Test unitari con JUnit (Java), PHPUnit (PHP)
- Test comportamentali di JBehave (Java), Behat e Mink (PHP)
- Test funzionali
Rifattorizzazione
- Cosa è la rifattorizzazione?
- Debito tecnico
- Codice puzzolente (code smell)
- Pattern di rifattorizzazione
Documentazione
- Il ruolo della documentazione nelle metodologie agili
- Cosa documentare?
- Tipi di documentazione
- Documentazione e metodologie agili, o si può dire (Software funzionante più che documentazione esaustiva)?
- Standard XMI
- Generazione automatica di documentazione da Javadoc (Java), ApiGen (PHP)
Strumenti e Ambiente CI
- Strumenti e ambiente CI
- PMD (Java), phpmd (PHP)
- CPD (Java), phpcpd (PHP)
- Contatore di righe di codice (Java), phploc (PHP)
- UCDetector (Java), phpdcd (PHP)
- Jdepend (Java), phpdepend (PHP)
- Jenkins Continuous Integration Server
Agile e CI/QA
- Pianificazione e sviluppo incrementale
- Accoglienza del cambiamento
- Fasi brevi
- Squadre interdisciplinari
- Extreme Programming, Code Review
- Individui e interazioni piuttosto che processi e strumenti
Riassunto
- Dibattito
- Domande
- Come iniziare il processo di implementazione?
Requisiti
Conoscenza dei processi di sviluppo software
Recensioni (5)
Interattivo e con pratica diretta.
Balavignesh Elumalai - Scottish Power
Corso - SonarQube for DevOps
Traduzione automatica
L'allenatore ha un'esperienza approfondita e ben narrato nei fatti. La profondità delle conoscenze e la passione per l'insegnamento sono molto apprezzate.
Anup Kumar - SMR Automotive Mirrors Stuttgart
Corso - Jenkins 2: Building CI/CD Pipelines
Traduzione automatica
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
Corso - DevOps Practical Implementation and Tools
Very detailed, trainer knows the subject very well and has covered a lot of topics
Gabriel Kelly Navarro - Opswerks
Corso - 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!.