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)
Engagant et des exercices pratiques.
Balavignesh Elumalai - Scottish Power
Formation - SonarQube for DevOps
Traduction automatique
Le formateur a une expérience approfondie et une bonne connaissance des faits. La profondeur de ses connaissances et sa passion pour l'enseignement sont très 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 au début. Le formateur a volontiers clarifié toutes les incertitudes et des cas d'utilisation 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 parfaitement le sujet et a abordé de nombreux thèmes
Gabriel Kelly Navarro - Opswerks
Formation - Advanced Spinnaker
Traduction automatique
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
Formation - Test Automation with Selenium and Jenkins
Traduction automatique