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 (4)
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
Être introduit à certaines technologies que j'aurais aimé connaître plus tôt.
Michel - Vanier College
Formation - DevOps Practical Implementation and Tools
Traduction automatique
J'aime toutes les possibilités que j'ai découvertes dans le cours sur les options DevOps que je peux appliquer pour avoir un meilleur flux de travail CD/CI !
Juan Manuel - si
Formation - Jenkins: Continuous Integration for Agile Development
Traduction automatique