Plan du cours
QA/CI
- Qu'est-ce que le QA (Assurance Qualité) ?
- Qu'est-ce que le CI (Intégration Continue) ?
- Les coûts du développement logiciel, du refactoring et de la correction des erreurs
- L'identification et la compréhension du projet
- Le bénéfice pour l'organisation
DDD
- Développement logiciel basé sur les exigences et hypothèses de l'entreprise (DDD)
- Problèmes de communication entre IT et le Business
- Modèle de domaine
Bonnes Pratiques
- Principe KISS (Keep It Simple, Stupid) et DRY (Don't Repeat Yourself)
- Normes de codage
- Création de code réutilisable grâce à l'OO (Programmation Orientée Objet) et aux motifs de conception
- Identification et réduction de la complexité cyclomatique
Métriques Logicielles
- Poids Méthode par Classe
- Réponse pour une Classe
- Profondeur de l'Arbre d'Héritage
- Couplage entre Objets
- Panache de Cohésion des Méthodes
- Nombre d'Enfants
- Complexité cyclomatique
- Métriques de classe
- Métriques de modèle
- Métriques pour l'utilisation
Tests Logiciels
- Quoi, quand et comment tester ?
- La méthode "boîte blanche" et "boîte noire"
- Le rôle des tests dans les méthodologies agiles
- TDD (Test-Driven Development) : une augmentation potentielle du coût du projet
- Tests unitaires avec JUnit (Java), PHPUnit (PHP)
- Tests comportementaux avec JBehave (Java), Behat et Mink (PHP)
- Tests fonctionnels
Refactoring
- Qu'est-ce que le refactoring ?
- Dette technique
- Sentinelles de code (code smell)
- Motifs de refactoring
Documentation
- Le rôle de la documentation dans les méthodologies agiles
- Que faut-il documenter ?
- Documentation et méthodologies agiles, ou peut-on dire (Logiciel fonctionnel plutôt que documentation exhaustive) ?
- Norme XMI
- Génération automatique de la documentation à partir de Javadoc (Java), ApiGen (PHP)
Outils et Environnement CI
- Outils et Environnement CI
- PMD (Java), phpmd (PHP)
- CPD (Java), phpcpd (PHP)
- Compteur de Lignes de Code (Java), phploc (PHP)
- UCDetector (Java), phpdcd (PHP)
- Jdepend (Java), phpdepend (PHP)
- Jenkins, Serveur d'Intégration Continue
Agile et CI/QA
- Planification et développement incrémentiel
- Accueil du changement
- Stades courts
- Équipe interdisciplinaire
- Extreme Programming, revue de code
- Individus et interactions plutôt que processus et outils
Synthèse
- Débat
- Questions
- Comment commencer le processus de mise en œuvre ?
Pré requis
Connaissance des processus de développement de logiciels
Nos clients témoignent (5)
Engageant et pratique approfondie.
Balavignesh Elumalai - Scottish Power
Formation - SonarQube for DevOps
Traduction automatique
Le formateur a une expérience approfondie et est très bien narré en effet. La profondeur de ses connaissances et sa passion pour l'enseignement sont hautement appréciées.
Anup Kumar - SMR Automotive Mirrors Stuttgart
Formation - Jenkins 2: Building CI/CD Pipelines
Traduction automatique
Le formateur était très bien organisé. Il a expliqué tous les outils nécessaires pour la formation dès le début. Le formateur a volontiers clarifié toutes les questions et des cas pratiques ont été discutés.
Vivek Verma - Global Knowledge Network Training Ltd
Formation - DevOps Practical Implementation and Tools
Traduction automatique
Très détaillé, le formateur maîtrise bien le sujet et a couvert de nombreux sujets
Gabriel Kelly Navarro - Opswerks
Formation - Advanced Spinnaker
Traduction automatique
All of it. Having had no previous exposure to Jenkins, I was a little concerned about my ability to keep up. IPad provided appropriate coaching/support, when I asked for help, so that I was able to follow the presentation at a level I was happy with.
Graham Congdon
Formation - Jenkins: Continuous integration for Agile development
Traduction automatique